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


in reply to How to delete conetents between two strings.

The easiest conceptually may be to use a flag variable to tell when you're between the markers. Your code can then print a copy only when the lines are not between the flags. This will process line by line, so it should use relatively little memory regardless of the length of the file and the length of the excluded sections.

This smells a bit like homework but could be very usful to any random sysadmin, too. I'm going to put the actual code in a spoiler tag and hope you choose honorably based on your situation.

Another way is to slurp the data and use a multi-line regex replacement. That won't take too much memory if there aren't too many lines (for some values of "too much" and "too many"). Implementation is left as an exercise.

There are likely many more exotic ways to handle this as well, but one or the other of the ones already mentioned should work for you.