#!/usr/bin/perl use warnings; use strict; sub getIPasNumber { my $l = shift; chomp($l); my @a = split(" ", $l); my $n = $a[2]; $n =~ s/\.//g; return $n; } my @a = ("Server 1 111.222.333.444", "Server 2 222.333.444.555", "Server 3 111.333.444.555"); my %h; my $i; foreach $i (@a) { my $num = getIPasNumber($i); $h{$num} = $i; } foreach $i (sort {$b <=> $a} (keys(%h))) { print "$h{$i}\n"; }