but I can't get it to work if I call sort on values.
You need to create an array of the keys ordered by the associated values:
[0] Perl> @a{ 1..26 } = reverse 'a'..'z';; @ordered = sort{ $a{$a} cmp $a{$b} } keys %a;; print "$_ :: $a{ $_ }" for @ordered;; 26 :: a 25 :: b 24 :: c 23 :: d 22 :: e 21 :: f 20 :: g 19 :: h 18 :: i 17 :: j 16 :: k 15 :: l 14 :: m 13 :: n 12 :: o 11 :: p 10 :: q 9 :: r 8 :: s 7 :: t 6 :: u 5 :: v 4 :: w 3 :: x 2 :: y 1 :: z
In reply to Re^3: Creating a hash from arrays
by BrowserUk
in thread Creating a hash from arrays
by cspctec
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |