fork download
  1. #!/usr/bin/perl
  2. # Perl Assignment - Hash of Hashes
  3. # Garbo Loo
  4.  
  5. # Teams using a Hash of Hashes
  6.  
  7. # I have created the following array:
  8.  
  9. @teams = ("Cambridge University Boat Club", "Oxford University Boat Club", "Leander Club", "USRowing National Team", "Sydney University Boat Club");
  10.  
  11. # and the following Hash of Hashes:
  12.  
  13. %myTeams = ( "Cambridge University Boat Club" => { yearBorn => 1828,
  14. owner => "University of Cambridge",
  15. headCoach => "Rob Baker",
  16. trainingBase => "Ely Boathouse",
  17. membersCount => 100
  18. },
  19. "Oxford University Boat Club" => { yearBorn => 1829,
  20. owner => "University of Oxford",
  21. headCoach => "Mark Fangen-Hall",
  22. trainingBase => "Fleming Boathouse",
  23. membersCount => 90
  24. },
  25. "Leander Club" => { yearBorn => 1818,
  26. owner => "Leander Club",
  27. headCoach => "Matt Beechey",
  28. trainingBase => "Henley-on-Thames",
  29. membersCount => 100
  30. },
  31. "USRowing National Team" => { yearBorn => 1872,
  32. owner => "USRowing",
  33. headCoach => "Eric Gehrke",
  34. trainingBase => "Chula Vista and Princeton",
  35. membersCount => 100
  36. },
  37. "Sydney University Boat Club" => { yearBorn => 1860,
  38. owner => "University of Sydney",
  39. headCoach => "Joe Chapman",
  40. trainingBase => "Linley Point",
  41. membersCount => 150
  42. },
  43.  
  44. );
  45.  
  46. # To print out sorted Team information in the Hash of Hashes (ascending order):
  47.  
  48. print ("\n\nWorld-class Rowing Teams - sorted by Team Name ascending:\n\n");
  49.  
  50. printf("%-35s %-6s %-30s %-25s %-30s %-10s\n","Rowing Team", "Year", "Owner", "Head Coach", "Training Base", "Members");
  51.  
  52. @sortedKeys = sort (@teams);
  53.  
  54. for $teamName (@sortedKeys) {
  55. $yearBorn = $myTeams{$teamName}{'yearBorn'};
  56. $owner = $myTeams{$teamName}{'owner'};
  57. $headCoach = $myTeams{$teamName}{'headCoach'};
  58. $trainingBase = $myTeams{$teamName}{'trainingBase'};
  59. $membersCount = $myTeams{$teamName}{'membersCount'};
  60.  
  61. printf("%-35s %-6s %-30s %-25s %-30s %-10s\n", $teamName, $yearBorn, $owner, $headCoach, $trainingBase, $membersCount);
  62. print "\n";
  63. }
  64.  
  65. # To print out sorted Team information in the Hash of Hashes (descending order):
  66.  
  67. print ("\n\nWorld-class Rowing Teams - sorted by Team Name descending:\n\n");
  68.  
  69. printf("%-35s %-6s %-30s %-25s %-30s %-10s\n","Rowing Team", "Year", "Owner", "Head Coach", "Training Base", "Members");
  70.  
  71. @reverseKeys = reverse (@sortedKeys);
  72.  
  73. for $teamName (@reverseKeys) {
  74. $yearBorn = $myTeams{$teamName}{'yearBorn'};
  75. $owner = $myTeams{$teamName}{'owner'};
  76. $headCoach = $myTeams{$teamName}{'headCoach'};
  77. $trainingBase = $myTeams{$teamName}{'trainingBase'};
  78. $membersCount = $myTeams{$teamName}{'membersCount'};
  79.  
  80. printf("%-35s %-6s %-30s %-25s %-30s %-10s\n", $teamName, $yearBorn, $owner, $headCoach, $trainingBase, $membersCount);
  81. print "\n";
  82. }
  83.  
  84. print "\n\nHTML Page containing information on World-class Rowing Teams:\n\n";
  85.  
  86. print "<html>\n";
  87. print "<head>\n";
  88. print "<title>My Team</title>";
  89. print "</head>\n";
  90. print "<body>\n";
  91. print "<h1>World-class Rowing Teams</h1>\n";
  92. print "<table border=1>\n";
  93. print "<tr><th>Rowing Team</th><th>Year</th><th>Owner</th><th>Head Coach</th><th>Training Base</th><th>Number of Members</th></tr>\n";
  94.  
  95. for $teamName (sort keys %myTeams ) {
  96. $yearBorn = $myTeams{$teamName}{'yearBorn'};
  97. $owner = $myTeams{$teamName}{'owner'};
  98. $headCoach = $myTeams{$teamName}{'headCoach'};
  99. $trainingBase = $myTeams{$teamName}{'trainingBase'};
  100. $membersCount = $myTeams{$teamName}{'membersCount'};
  101.  
  102. print "<tr><td>$teamName</td><td>$yearBorn</td><td>$owner</td><td>$headCoach</td><td>$trainingBase</td><td>$membersCount</td></tr>\n";
  103. }
  104. print "</table>\n";
  105. print "</body>\n";
  106. print "</html>\n";
  107.  
  108.  
  109. print "\n\nXML file containing information on my Team - by Team Name ascending:\n\n";
  110.  
  111. print "<?xml version=\"1.0\"?>\n";
  112. print "<teams>\n";
  113.  
  114. for $teamName (sort keys %myTeams ) {
  115.  
  116. print " <team>\n";
  117.  
  118. $yearBorn = $myTeams{$teamName}{'yearBorn'};
  119. $owner = $myTeams{$teamName}{'owner'};
  120. $headCoach = $myTeams{$teamName}{'headCoach'};
  121. $trainingBase = $myTeams{$teamName}{'trainingBase'};
  122. $membersCount = $myTeams{$teamName}{'membersCount'};
  123.  
  124. print " <teamName>$teamName</teamName>\n";
  125. print " <yearBorn>$yearBorn</yearBorn>\n";
  126. print " <owner>$owner</owner>\n";
  127. print " <headCoach>$headCoach</headCoach>\n";
  128. print " <trainingBase>$trainingBase</trainingBase>\n";
  129. print " <membersCount>$membersCount</membersCount>\n";
  130. print " </team>\n";
  131. }
  132. print "</teams>\n";
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout

World-class Rowing Teams - sorted by Team Name ascending:

Rowing Team                         Year   Owner                          Head Coach                Training Base                  Members   
Cambridge University Boat Club      1828   University of Cambridge        Rob Baker                 Ely Boathouse                  100       

Leander Club                        1818   Leander Club                   Matt Beechey              Henley-on-Thames               100       

Oxford University Boat Club         1829   University of Oxford           Mark Fangen-Hall          Fleming Boathouse              90        

Sydney University Boat Club         1860   University of Sydney           Joe Chapman               Linley Point                   150       

USRowing National Team              1872   USRowing                       Eric Gehrke               Chula Vista and Princeton      100       



World-class Rowing Teams - sorted by Team Name descending:

Rowing Team                         Year   Owner                          Head Coach                Training Base                  Members   
USRowing National Team              1872   USRowing                       Eric Gehrke               Chula Vista and Princeton      100       

Sydney University Boat Club         1860   University of Sydney           Joe Chapman               Linley Point                   150       

Oxford University Boat Club         1829   University of Oxford           Mark Fangen-Hall          Fleming Boathouse              90        

Leander Club                        1818   Leander Club                   Matt Beechey              Henley-on-Thames               100       

Cambridge University Boat Club      1828   University of Cambridge        Rob Baker                 Ely Boathouse                  100       



HTML Page containing information on World-class Rowing Teams:

<html>
<head>
<title>My Team</title></head>
<body>
<h1>World-class Rowing Teams</h1>
<table border=1>
<tr><th>Rowing Team</th><th>Year</th><th>Owner</th><th>Head Coach</th><th>Training Base</th><th>Number of Members</th></tr>
<tr><td>Cambridge University Boat Club</td><td>1828</td><td>University of Cambridge</td><td>Rob Baker</td><td>Ely Boathouse</td><td>100</td></tr>
<tr><td>Leander Club</td><td>1818</td><td>Leander Club</td><td>Matt Beechey</td><td>Henley-on-Thames</td><td>100</td></tr>
<tr><td>Oxford University Boat Club</td><td>1829</td><td>University of Oxford</td><td>Mark Fangen-Hall</td><td>Fleming Boathouse</td><td>90</td></tr>
<tr><td>Sydney University Boat Club</td><td>1860</td><td>University of Sydney</td><td>Joe Chapman</td><td>Linley Point</td><td>150</td></tr>
<tr><td>USRowing National Team</td><td>1872</td><td>USRowing</td><td>Eric Gehrke</td><td>Chula Vista and Princeton</td><td>100</td></tr>
</table>
</body>
</html>


XML file containing information on my Team - by Team Name ascending:

<?xml version="1.0"?>
<teams>
 <team>
  <teamName>Cambridge University Boat Club</teamName>
  <yearBorn>1828</yearBorn>
  <owner>University of Cambridge</owner>
  <headCoach>Rob Baker</headCoach>
  <trainingBase>Ely Boathouse</trainingBase>
  <membersCount>100</membersCount>
 </team>
 <team>
  <teamName>Leander Club</teamName>
  <yearBorn>1818</yearBorn>
  <owner>Leander Club</owner>
  <headCoach>Matt Beechey</headCoach>
  <trainingBase>Henley-on-Thames</trainingBase>
  <membersCount>100</membersCount>
 </team>
 <team>
  <teamName>Oxford University Boat Club</teamName>
  <yearBorn>1829</yearBorn>
  <owner>University of Oxford</owner>
  <headCoach>Mark Fangen-Hall</headCoach>
  <trainingBase>Fleming Boathouse</trainingBase>
  <membersCount>90</membersCount>
 </team>
 <team>
  <teamName>Sydney University Boat Club</teamName>
  <yearBorn>1860</yearBorn>
  <owner>University of Sydney</owner>
  <headCoach>Joe Chapman</headCoach>
  <trainingBase>Linley Point</trainingBase>
  <membersCount>150</membersCount>
 </team>
 <team>
  <teamName>USRowing National Team</teamName>
  <yearBorn>1872</yearBorn>
  <owner>USRowing</owner>
  <headCoach>Eric Gehrke</headCoach>
  <trainingBase>Chula Vista and Princeton</trainingBase>
  <membersCount>100</membersCount>
 </team>
</teams>