in reply to get n lines before or after a pattern
What have you tried? What didn't work? See How do I post a question effectively?.
There are two ways I can think of doing this. Probably the simpler from your perspective would be to iterate over lines in a while loop, and set up some state variables to stash values. Then, when you hit a lastname line, you can test the value of $name (or $hash{name}) to see if it is jack, outputting all relevant information if it is.
The more complex approach would be using regular expressions with the m and g modifiers. This is how I'd do, but tends to be a little more fragile, less obvious for code review and more challenging for the neophyte.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.
In Section
Seekers of Perl Wisdom