http://qs1969.pair.com?node_id=324324


in reply to Storing Lines before and After pattern

Because of $` and $' overhead, this is an ideal place for split:
open ($fh, "<poem") or die "Couldn't Open!"; $poem = do{ local $/; <$fh> }; ($before, $match, $after} = split /(DOG)/, $poem;



Code is (almost) always untested.
http://www.justicepoetic.net/

Replies are listed 'Best First'.
Re: Re: Storing Lines before and After pattern
by ysth (Canon) on Jan 27, 2004 at 01:09 UTC
    If there may be multiple occurrences of DOG, you want:
    ($before, $match, $after) = split /(DOG)/, $poem, 2;
    or $after will only include up to the second DOG.