Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Error in my Regular expression pattern

by Anonymous Monk
on Mar 18, 2012 at 07:28 UTC ( #960267=note: print w/ replies, xml ) Need Help??


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

print "pos is ", pos, ", remainder '", substr($_, pos), "'\n"; pos($_) = undef;
this resets pos associated with $_, and then your program will produce
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;


Comment on Re^2: Error in my Regular expression pattern
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://960267]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (8)
As of 2014-12-18 03:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (41 votes), past polls