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