Reputation: 2599
I am looking at an example found here: http://perlmeme.org/tutorials/sort_function.html
And it gives this code to sort a hash based on each key's value:
# Using <=> instead of cmp because of the numbers
foreach my $fruit (sort {$data{$a} <=> $data{$b}} keys %data) {
print $fruit . ": " . $data{$fruit} . "\n";
}
This code I do not fully understand, but when I experiment with it, it sorts from lowest to highest. How can I flip it to sort from highest to lowest?
Upvotes: 4
Views: 21803
Reputation: 43673
Just use reverse sort
instead of sort
.
foreach my $fruit (reverse sort keys %data) { ...
Upvotes: 16
Reputation: 531055
Swap $a
and $b
:
foreach my $fruit (sort {$data{$b} <=> $data{$a}} keys %data) {
Upvotes: 15