Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

m modifier not doing what I'm expecting?

by ultranerds (Friar)
on Dec 21, 2011 at 12:09 UTC ( #944601=perlquestion: print w/ replies, xml ) Need Help??
ultranerds has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I'm trying to work out why this regex isn't working as I'm expecting. I'm using the /m modifier to make it treat the data as "new lines" per row, but it seems to just keep looping through on the first one:
my $data = <<_DATA_; == Example header 1 == a f == Header 2 example ==== sub header a sub sub header :) == Testing header item with some stuff in [[fffsdfsdf]] _DATA_ while ($data =~ /^\=\= (.+?)$/m) { print "FOO: $1 \n"; }
..just keeps printing out:

FOO: Example header 1 (repeatedly, til you kill the script)

Can anyone point me to where I'm going wrong?

TIA!

Andy

Comment on m modifier not doing what I'm expecting?
Download Code
Re: m modifier not doing what I'm expecting?
by moritz (Cardinal) on Dec 21, 2011 at 12:14 UTC

      This is not a problem here, as the dot isn't supposed to match a newline.

Re: m modifier not doing what I'm expecting?
by Eliya (Vicar) on Dec 21, 2011 at 12:15 UTC

    You also want the /g modifier.  (/m alone matches from the beginning every time, thus the endless loop...)

      Aaah thanks - so was just missing the /g ... works like a charm now. Thanks!

      Andy

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2015-07-04 19:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls