in reply to Special Variables and Multiple Regexp Matching
As a general thing providing a focused working stand alone sample script illustrating the problem will get you better answers. Consider:
use strict; use warnings; my @lines = split /\n/, <<LINES; token token token taken token tiki LINES chomp @lines; for my $line (@lines) { print "$line:\n"; while ($line =~ /token/gi) { print " >$`|$'<\n"; } }
Prints:
token token token: >| token token< >token | token< >token token |< taken token tiki: >taken | tiki<
while (lc($line) =~ /token/g) { loops until killed because each time through the loop lc($line) is re-evaluated so the regular expression restarts, so don't do that. So long as $line isn't changed the /g makes the regular expression carry on from where it left off last time through the loop, which is what you want.
|
|---|