use Regexp::Common qw /net/; # match dotted decimal IP address # $1 = whole match, $2-5 = bytes my $IP = $RE{net}{IPv4}{-keep}; foreach my $line (@connections) { if ($line =~ /^\s*$IP:\d+\s*->\s*$IP:\d+\s*->\s*$IP/x) { $client_ip{$1}{$iteration}++; $vips{$6}{$iteration}++; $frontend{$11}{$iteration}++; } }