in reply to Array size issue

You can do this a lot easier and shorter:

open my $tailf, "tail -f $logFile |" or die; for (1,2) { my $line = ''; $line = <$tailf> until $line =~ / on $ipaddress/; push @matches, $line; }
(Okay, you'd have to include some check for eof so it won't get into an endless loop if the input is too short. But I won't change it because it's so nice and short :)