On Thu, Nov 23, 2006 at 05:09:17PM -0500, Buddha Buck wrote:
> The way I see it, everything which defines a separate lexical scope (a
> block, a function, a closure.  I forget if in "my $a; ... ; my $b" $b
> is visible in the ellipsis.  If not, then a "my" statement also
> defines a separate lexical scope) effectively creates a separate pad,
> at run-time, when it is entered. 

"my $b" should not be visible in the ellipsis (it is in pugs, and that's
a bug). However, there's no need for each "my" to define a separate
scope, because the invisibility of $b in the block prior to its
declaration is only required for compile time processing. If you hide
a reference to $b in an eval string, the spec explicitly allows the 
runtime to use the lexical $b defined later in the block.

Reply via email to