for ( my $i = 0; $i < $RowCount; $i++ ) { if ($Log[$i] =~ /^(\S+)\s+(\d+)\s+(\S+).*?kernel: FORWARD:/) { my ($Month, $Day, $Time) = ($1, $2, $3); my %Data = ($Log[$i] =~ /(?:(IN|OUT|SRC|DST|LEN|PROTO|SPT|DPT)=(\S+))/gi)) { print Dumper(%Data); } }