use strict; use warnings; use Socket; my @ip = ( '159.230.1.1 255.255.224.0', '159.230.1.20 255.255.252.0', '158.230.1.3 255.255.255.0', '159.230.1.3 255.255.255.0', '159.230.1.20 255.255.1.1' ); print join ("\n", @ip); print "\n\n"; my %count; foreach (@ip) { $count{inet_aton($&)}++ if /159\.230\..*?( |$)/; } open(FILE, '>ip.txt'); foreach (sort keys %count) { print inet_ntoa($_)." appears $count{$_} times.\n"; print FILE inet_ntoa($_)."\n"; } close FILE