$x = 5; # Number of lines to print above and below. open (LOG, "GWSvc.log") || die "Unable to get a handle to the file: $! +\n"; $after = 0; while () { if ($after) { print $_; $after--; } else { push (@lines, $_); if ($#lines > $x) { shift(@lines); } } if (/c9391b56-b174-441b-921c-7d63/) { print $line while ($line = shift(@lines)); $after = $x; } }