sub mySort { $a =~ /(\d+)/; my $firstVal = $1; $b =~ /(\d+)/; my $secVal = $1; $firstVal <=> $secVal; } my %IP_Store = ( "11.0.0.1" => "UEH1_system_ip", "11.0.0.11" => "UEH11_system_ip", "11.0.0.3" => "UEH25_system_ip", "11.0.0.25" => "UEH111_system_ip" ); %new_hash = reverse(%IP_Store); foreach my $key (sort mySort (keys(%new_hash))) { chomp($key); print "$key\n"; print "System_ip = $new_hash{$key}\n"; #print "PDN-IP = '$Values' \n"; }