use Tie::File; my $filename = 'thelog.log' tie my @array, 'Tie::File', $filename or die "can't open file:$filename : $!"; for my $i ( 0 .. $#array ) { my $line = $array[$i]; if ( $line =~ m/MYLOGREGEX/x ) { my $date = $array[ $i - 8 ]; ## do something with $line and $date } }