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


in reply to Re: grep question using multiple lines
in thread grep question using multiple lines

My solution with the while loop works with many emails on the same line. In fact doing so we consider the text as a whole totally ignoring newlines.

The idea of /g flag within a while is each match will start where the previous one has stopped and the loop stops when there is no more successful match.

The special variable @- is an array with the match start and end positions respectivly as $-[0] and $-[1] it might help to see what the loop does,

while ($txt =~ /constant=(\w+@\w+\.\w+)/g) { print "==> match starts at $-[0]!!!\n"; print "$1\n"; }