my %hash = ( 1 => [1, One], 2 => [2, Two], 3 => [3, Three], 4 => [4, Four], 5 => [5, Five], 6 => [6, Six], 12 => [12, Twelve], ); my @sort; for my $key (keys %hash) { push @sort, "$hash{$key}[0]::$hash{$key}[1]"; } for (sort @sort) { my ($int, $alpha) = split(/::/, $_); print "Integer is: $int -- Alpha is: $alpha\n"; } #### Integer is: 12 -- Alpha is: Twelve Integer is: 1 -- Alpha is: One Integer is: 2 -- Alpha is: Two Integer is: 3 -- Alpha is: Three Integer is: 4 -- Alpha is: Four Integer is: 5 -- Alpha is: Five Integer is: 6 -- Alpha is: Six