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

Re: Re2: pattern matching a limited number of times

by bart (Canon)
on Sep 14, 2002 at 10:14 UTC ( [id://197838]=note: print w/replies, xml ) Need Help??


in reply to Re2: pattern matching a limited number of times
in thread pattern matching a limited number of times

Doh! I didn't see your very similar solution before I posted....
It is very similar, isn't it? And I hadn't seen yaphy's solution before I posted mine. Now, it left me wondering: is setting pos() necessary, or will Perl DWIM, and continue matching at the same point in the (original) string without help? That's what s///g does.

Well, it turns out that it appears to be using an offset in the string to keep track of where it was. So it is necessary.

$_ = 'abxy' x 12; for(my $i = 0; m/ab/g and $i++<5;) { substr($_, $-[0], $+[0]-$-[0]) = 'abXab'; } print;
Result: abXabXabXabXabXabxyabxyabxyabxyabxyabxyabxyabxyabxyabxyabxyabxy

Not good.

$_ = 'abxy' x 12; for(my $i = 0; m/ab/g and $i++<5;) { substr($_, $-[0], $+[0]-$-[0]) = 'abXab'; pos = $-[0]+5; } print;
Result: abXabxyabXabxyabXabxyabXabxyabXabxyabxyabxyabxyabxyabxyabxyabxy

Good.

p.s. I noticed this, which is also very awkward:

my $length = length(substr($_, 2, 2) = 'abXab'); print $length;
prints 2, not 5. What happened to the rule: the value of an assignment as an expression, is what you assign?

Replies are listed 'Best First'.
Re: Re: Re2: pattern matching a limited number of times
by BrowserUk (Patriarch) on Sep 14, 2002 at 10:48 UTC

    p.s. I noticed this, which is also very awkward:

    Aren't you simply being bitten by the same bug I reported here in thread which you commented on here?

    For reference, Perlbug assigned a ticket ID of [perl #16834].


    Well It's better than the Abottoire, but Yorkshire!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2024-04-18 14:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found