my $i = 3; # from line 4 ... while ($i < @lines - 2) { # ... until last but 3 if ($lines[$i] =~ m!!) { splice(@lines, $i - 3, 6); # kill 6 lines from $i - 3 } else { $i++; } }