in reply to Re: Print 5 lines before and after pattern match from a list
in thread Print 5 lines before and after pattern match from a list

I don't think the attribute "deficient" applies so much to your code as to OP's imperfect spec. Clearly, if an element of @patterns occurs in first line of the log being read, lines ( -n .. 0 ) simply do NOT exist (for any value other than 0 of the prior lines desired). We can speculate, but OP alone knows (or 'should know') the complete spec.

Similarly, if any element of @patterns occurs in the last line, the lines ( (last+1)..(last+5) ) are going to be a bit difficult to include in the output.

BUT, far more important than the observations above, your code (Re: Print 5 lines before and after pattern match from a list) and that above same title, different node, by bitingduck are excellent examples of what Monks can do to help a Seeker, as is hdb's initial response re the looping mistake and Athanasius' note on regular expressions.

++ to all.

Replies are listed 'Best First'.
Re^3: Print 5 lines before and after pattern match from a list
by hdb (Monsignor) on Mar 15, 2015 at 17:19 UTC

    The OPs code already implements a solution by cutting of at the beginning and the end of the array, so we can safely imply his desired spec!