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