what exactly is dynamic scope?
A "local" modifies its listed variables to be "local" to the enclosing
+ block, "eval", or
"do FILE"--and to any subroutine called from within that block. A "loc
+al" just gives
temporary values to global (meaning package) variables. It does not cr
+eate a local variable.
This is known as dynamic scoping.
I think this explains the visibility of the labels too.
(Please treat my english text just like Perl code, i.e. feel free to notify me of any syntax, grammar, style and/or spelling error. Thank you!).