open LOGFILE, "<$file"; @lines = ; for my $i (0..$#lines) { next unless $lines[$i] =~ /$string_to_find/i; my $a = $i - 5 < 0 ? 0 : $i - 5;; my $b = $i + 5 > $#lines ? $#lines : $i + 5; print $lines[$_i] for my $_i ($a..$b); }