http://www.perlmonks.org?node_id=809347


in reply to Sort: By keys, values, and their returning values.

If you wanted to sort keys by their values, and then by key (when the values are identical), you could do it this way:

use 5.010; my %h = ( a => 1, b => 1, c => 2, ); say join '|', sort { $hash{$a} <=> $hash{$b} || $a cmp $b } keys %h; __END__ a|b|c

In this example, I've sorted the keys using cmp since they're strings, but you can use <=> there too, if that will work better for what you're doing.