sub sortByValue { my %hash = @_; sort { $a->[1] cmp $b->[1] } map { [ $_, %hash{$_} ] } keys %hash; } foreach $pair (sortByBalue %myHash) { print "$pair->[0] - $pair->[1]\n"; } #### sub sortByValue { my %hash = @_; sort { $hash{$a} cmp $hash{$b} } keys %hash; } foreach my $key (sortByValue %myHash) { print "$key - $myHash{$key}\n"; }