Если вы хотите, чтобы компаратор сортировки отличался от cmp
, вы можете указать кодовый блок или подпрограмму в качестве первого параметра для sort
. Подробнее см. в документации .
my %h = (
aaaa => 'z',
bbb => 'x',
c => 'y',
);
# Sort on hash values.
for my $k (sort {$h{$a} cmp $h{$b}} keys %h) {
print $k, "\n"; # bbb c aaaa
}
# Sort using a named subroutine.
for my $k (sort by_length keys %h) {
print $k, "\n"; # c bbb aaaa
}
sub by_length {
length($a) <=> length($b);
}