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"; }