> Yes, but your *. should be .* to work.  When you have

Sorry, typo. It is .* in the code!

> % If I do (for example) "p1 p2 p1 p2\n\np1 p2", shouldn't the
> while loop match
> % on 3 instances? If not, what should I use to match each instance?
>
> Now that it's all one big line, you need /g to make it global (more than
> just the first on the line).  Time to go back to the Camel book for some
> reading; while regexps can be tricky, you *can* get to the bottom of them!
>
>
> %
> % Again, my goal is to match each instance of /(p1)*anything*(p2)/.
>
> I should think that
>
>   undef $/ ;
>   ...
>   /(p1).*(p2)/g ;
>
> would do it for you.

I would think so too...but that's not the case!

I've tried with /g alone and also with /gs, /gm, and /gms. As long as /s is
one of the modifiers I do match one instance, but in no case do I match
multiple instances. Weird.

Thanks for any additional clues.

dn

ps. Here's the code again (with correct typing this time!):

undef $/;

while (<MYFILE>) {
        if(m/(p1).*(p2)/gs
) {
                print "match! found $1 and $2.\n";
        }
}


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to