Сортировать хэш Perl от наибольшего к наименьшему
Я смотрю на пример, найденный здесь: http://perlmeme.org/tutorials/sort_function.html
И он дает этот код для сортировки хэша на основе значения каждого ключа:
# Using <=> instead of cmp because of the numbers
foreach my $fruit (sort {$data{$a} <=> $data{$b}} keys %data) {
print $fruit . ": " . $data{$fruit} . "\n";
}
Этот код я не до конца понимаю, но когда я экспериментирую с ним, он сортируется от самого низкого до самого высокого. Как я могу перевернуть его, чтобы отсортировать от высшего к низшему?
2 ответа
Решение
Своп $a
а также $b
:
foreach my $fruit (sort {$data{$b} <=> $data{$a}} keys %data) {
Просто используйте reverse sort
вместо sort
,
foreach my $fruit (reverse sort keys %data) { ...