open(INFILE, "< file.log") or die "Cant open file : $!"; open(OUT, "> results.txt") or die "Cant open new file : $!"; $pattern = "Error code 2"; while () { $a[$i++%3] = $_; print OUT $a[$i%3] if /$pattern/; } close INFILE; close OUT;