Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^2: search position is getting reset after 'local'

by Joost (Canon)
on Jun 12, 2006 at 18:48 UTC ( [id://554878]=note: print w/replies, xml ) Need Help??


in reply to Re: search position is getting reset after 'local'
in thread search position is getting reset after 'local'

I think the main potential problem would be when you're using localized $_ combined with m//g matches.

let's say you convert this (working) code:

$_ = "abcdefg"; my @some_array = (1 ..2); while (m/./g) { for (@some_array) { # implicitly localized - works # do something; } print $&; }
to this (stupid but more or less equivalent) code:
$_ = "abcdefg"; while (m/./g) { my @some_array = (1 ..2); while (local $_ = shift @some_array) { # manually localized - break +s # do something; } print $&; }

Some of the parsing code i've written makes heavy use of $_ and then you can run into this problem when you're refactoring.

update: the above code breaks, because it's not the pos() function that's broken, but the match position field itself gets reset by localizing a variable - in other words, the while (m/./g) statement will loop forever.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (6)
As of 2024-04-26 09:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found