#!/usr/bin/perl -w use strict; use Data::Dumper; my %hash = ( 'a' => [1, 'One'], 'b' => [2, 'Two'], 'c' => [3, 'Three'], 'd' => [4, 'Four'], 'e' => [5, 'Five'], 'f' => [6, 'Six'], 'g' => [12, 'Twelve'], ); my %key_ht; foreach my $key (keys %hash) { $key_ht{$hash{$key}[0]} = $key } print "key_ht:", Dumper(\%key_ht), "\n"; foreach my $key (sort { $a <=> $b } keys %key_ht) { my $num = $hash{$key_ht{$key}}[0]; my $str = $hash{$key_ht{$key}}[1]; print "Integer is: ", $num, " -- Alpha is: ", $str, "\n"; }