in reply to Re: Error in my Regular expression pattern
in thread Error in my Regular expression pattern
Like perlop#m/PATTERN/msixpodualgc (
perlop#m// ), says,
m// in scalar context returns true if it succeeds, false if it fails.
Each time m// succeeds against a variable, like when $n = m/twinkle/ig; executes, position is changed, so that while(/twinkle/ig) { executes, only the second twinkle is counted.
If you add this to your program before the while loop
this resets pos associated with $_, and then your program will produceprint "pos is ", pos, ", remainder '", substr($_, pos), "'\n"; pos($_) = undef;
Number of occurences = 1 pos is 7, remainder ' twinkle little star' Found 2 times
Like perlfaq4 says, if you want the number of occurances, use the flying lentil operator, use my $count =()= m/twinkle/ig;
|
---|
In Section
Seekers of Perl Wisdom