http://www.perlmonks.org?node_id=1001706


in reply to Re^6: sort hash of arrays of arrays
in thread sort hash of arrays of arrays

How does it work? Specifically, why does it need the "for keys %hash" part?

Because, as I said, you need to do one sort for each key.

(I don't know how better to explain it than that. )

How could I sort on the innermost elements (e.g. [26, 27, 28] to get [28, 27, 26]) using the same method?

Now you need to do one sort for each sub array, for each key, so you need nested loops:

for my $key ( keys %hash ) { for my $aref ( @{ $hash{ $key } } ) { @{ $aref } = sort { $b <=> $a } @{ $aref }; } } ;; pp \%hash;; { 1 => [[28, 27, 26], [18, 17, 16], [8, 7, 6], [3, 2, 1]], 2 => [[29, 28, 27], [19, 18, 17], [9, 8, 7], [4, 3, 2]], 3 => [[30, 29, 28], [20, 19, 18], [10, 9, 8], [5, 4, 3]], 4 => [[31, 30, 29], [21, 20, 19], [11, 10, 9], [6, 5, 4]], }

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

RIP Neil Armstrong