#!/usr/bin/perl # Print out a hash by key order, then by value order. %grades=(kim=>96,al=>63,rocky=>87,chrisy=>96,jane=>9); # Grades sorted by Student Name: # al 63 # chrisy 96 # jane 9 # kim 96 # rocky 87 print "\nGrades sorted by Student Name:\n"; foreach $key (sort keys %grades) { printf " %7s %2d\n",$key,$grades{$key};} # Grades sorted by Ascending Grades: # jane 9 # al 63 # rocky 87 # chrisy 96 # kim 96 print "\nGrades sorted by Ascending Grades:\n"; foreach $key (sort {$grades{$a} <=> $grades{$b}} keys %grades) { printf " %7s %2d\n",$key,$grades{$key}; } # Grades sorted by Descending Grades: # chrisy 96 # kim 96 # rocky 87 # al 63 # jane 9 print "\nGrades sorted by Descending Grades:\n"; foreach $key (sort {$grades{$b} <=> $grades{$a}} keys %grades) { printf " %7s %2d\n",$key,$grades{$key}; }