in reply to Effective sort method?

As mentioned in the chatterbox, you wanted to sort by the first element of the array rather than by the hash key. This example will work:

use strict; use warnings; my %hash = ( 1 => [1, 'One'], 2 => [2, 'Two'], 3 => [3, 'Three'], 4 => [4, 'Four'], 5 => [5, 'Five'], 6 => [6, 'Six'], 12 => [12, 'Twelve'], ); # sort the hash numerically by the first element in each array foreach my $key ( sort { $hash{$a}[0] <=> $hash{$b}[0] } keys %hash ) { print "Integer is: $key -- Alpha is: $hash{$key}[1]\n"; }

Please also note that if you had warnings turned on you would have realized the second element in your arrays are barewords and need to be quoted.

Relevant links: