Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Regex Capturing: Is this a bug or a feature?

by fruiture (Curate)
on Sep 28, 2002 at 14:54 UTC ( [id://201447]=note: print w/replies, xml ) Need Help??


in reply to Regex Capturing: Is this a bug or a feature?

I've always taken this to mean they are "local" scoped to a block just as if you has said local($1), apparently this is not the case. Or at least not the case on my build of Perl v5.6.1

Yes, it's not "local", for local also localizes a variable for one loop iteration. May be this behaviuor is not perfectly documented, but in fact I've never had any problems with that so far. You should not work with these variables anyway, but use your own for better control.

our $x = 0; foreach(@values){ local $x; /m(\w+)\.(\d+)/ and my ($f,$s) = ($1,$2); print "-- $_: $1;$s; ",$x++,"\n" }
--
http://fruiture.de

Replies are listed 'Best First'.
Re: Re: Regex Capturing: Is this a bug or a feature?
by shotgunefx (Parson) on Sep 28, 2002 at 15:10 UTC
    The code above is stripped down to an example. I do find this behaviour quite suprising and very NWIM. I would go so far to say that it's documentated incorrectly (at the very least, poorly). Both are described as dynamic scoping.

    Looking at perlsub and local() This is known as dynamic scoping. Lexical scoping is ...

    -Lee

    "To be civilized is to deny one's nature."

      Well, the documentation doesn't say they're scoped like "local" would do :-)

      In a way you're right, but imho there is no problem arising from this issue if you always use your own variables instead of $1 .. $n. (Which means you assign your own vars immediately after the match).

      --
      http://fruiture.de
        Well there is no problem if and ONLY if you conditionally assign based on the match.

        I'm not complaining about how it works, more about how it's documented. dynamic and local() are equated many times in the perlpods.

        -Lee

        "To be civilized is to deny one's nature."

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2024-04-19 13:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found