Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: Lexical scoping like a fox

by dingus (Friar)
on Nov 19, 2002 at 09:17 UTC ( #214061=note: print w/replies, xml ) Need Help??

in reply to Lexical scoping like a fox

To follow up on Elian's comment about the misleading description of "destruction". This is an area that has always confused (and contused) me. I think you could try adding this snippet to your nested lexical scope example and then things will become clearer:
my $foo = "file scope"; { my $foo = "outer scope"; { my $foo = "inner scope"; print " \$foo is: $foo\n"; sub innerfoo() { $foo = "(Innerfoo) \$foo is: $foo\n"; print $foo; } } print " \$foo is: $foo\n"; innerfoo(); } print "\$foo is: $foo\n"; innerfoo(); innerfoo(); print "\$foo is: $foo\n"; __output__ $foo is: inner scope $foo is: outer scope (Innerfoo) $foo is: inner scope $foo is: file scope (Innerfoo) $foo is: (Innerfoo) $foo is: inner scope (Innerfoo) $foo is: (Innerfoo) $foo is: (Innerfoo) $foo is: inner scop +e $foo is: file scope
What this snippet shows is that the inner $foo remains defined to the subroutine in the inner scope even though the program has passed on through it and down to the other scopes. You could mention that this is a bit like a C static if you want ...
Note: numerous puns about finding one's inner $elf are undoubtedly available if required


Enter any 47-digit prime number to continue.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (2)
As of 2021-02-26 16:18 GMT
Find Nodes?
    Voting Booth?

    No recent polls found