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.
In reply to Re: Special Variables and Multiple Regexp Matching
by GrandFather
in thread Special Variables and Multiple Regexp Matching
by nathaniels
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |