use strict; my @lines=; print sort{by_ip($a)<=>by_ip($b)} @lines; sub by_ip { @_[0]=~ /\.(\d+)\s/; return $1; } __DATA__ 10.194.196.55 heckyll 10.194.196.57 txwl013w 10.194.196.61 krios 10.194.196.62 stasis # dial up server 10.194.196.63 nnocdts01 # sparc 5 in wan rm 10.194.196.65 libra 10.194.196.66 legato-school 10.194.196.67 txwlxdbs nnocs002a 10.194.196.46 chqnocp01 # Laser 4MV by Joe Blow 10.194.196.47 chqnocp02 10.194.196.9 TEST 10.194.196.49 nnocrpt01 10.194.196.64 saturn 10.194.196.50 nnocgw001 10.194.196.52 nnocs002 10.194.196.53 wslkms02 wslknms0 10.194.196.54 nnocws001