http://www.perlmonks.org?node_id=977098


in reply to Re^4: printing several lines around match
in thread printing several lines around match

Ain't that one sweet helluva mess.

Change the while line into this. I think it should solve it. But again, untested.

while ( <$HAN> ) {

But more importantly, instead of verbatim copying that code, try to understand what's going on. Try to understand what I am doing, and why, and how. Of course, my way is not the only way and for all I know it might not even be the best way, but it's the thought process that matters.