in reply to Re^2: Using an "outer" lexical in a sub?
in thread Using an "outer" lexical in a sub?
You can look at it like this:
Now, you can see that both blocks access the same variable (i.e. $n will be 12 at the end of test()).sub test() { my $n = 10; { print( $n++, "\n" ) } { print( $n++, "\n" ) } print "\$n is now $n\n; }
If you run test() again, my $n = 10; will effectively be a new variable $n but if you still have a subref somewhere that accesses the old $n (i.e. a reference to a to one or more of the inner blocks) that code ref will hang on to its variables and new ones will be created if necessary.
Note that in my earlier post the outer subroutine is called twice and that will create the new lexical variable.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Using an "outer" lexical in a sub?
by cornballer (Novice) on Nov 01, 2006 at 22:48 UTC |