Сортировать хэш 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) { ...

Другие вопросы по тегам