Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^7: Hard syntax error or disambiguable parsing?

by JavaFan (Canon)
on Jan 29, 2009 at 16:20 UTC ( [id://739953]=note: print w/replies, xml ) Need Help??


in reply to Re^6: Hard syntax error or disambiguable parsing?
in thread Hard syntax error or disambiguable parsing?

Actually, the loop variable will be lexical if there's a current lexical variable with that name, otherwise it will be local variable (with a local scope).
my $i = 10; our $j = 10; sub print_it {say "[$i, $j]"} print_it; foreach $i (0 .. 5) {print_it;} print_it; foreach $j (0 .. 5) {print_it;} print_it; __END__ [10, 10] [10, 10] [10, 10] [10, 10] [10, 10] [10, 10] [10, 10] [10, 10] [10, 0] [10, 1] [10, 2] [10, 3] [10, 4] [10, 5] [10, 10]
As you can see, $i is lexical, and its value isn't visible outside the loop. But $j is a package variable, who gets a localized value inside the loop. And then its value is visible outside the loop.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2024-04-19 17:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found