Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

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.

Comment on Re: Lexical scoping like a fox
Download Code

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 romping around the Monastery: (5)
As of 2014-07-26 02:06 GMT
Find Nodes?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:

    Results (175 votes), past polls