On Tue, Jul 09, 2002 at 09:50:26PM -0400, Chip Salzenberg wrote: Based on what I rememeber from the long threads about this,
> 3. Is C<%MY> intended to reflect the PAD? loosely speaking yes. > > 3a. If so, how can one distinguish among the e.g. many C<my $foo> > variables declared within the current function? It was decreed that %MY only sees stuff in the inner-most lexical scope (so the Perl6 version of a pad is 'bigger' than what %MY sees): { my $x = 1; { exists %MY::{'$x'}; # false print %MY::{'$x'}; # undef print $x; # 1 %MY{'$x'} = 2; print %MY::{'$x'}; # 2 print $x; # 2 { exists %MY::{'$x'}; # false print %MY::{'$x'}; # undef print $x; # 2 } } exists %MY::{'$x'}; # true print %MY::{'$x'}; # 1 print $x; # 1 } > > 3b. If not, how are lexical adjustments to C<%MY> unwound? Or are > they? If they're not, I can actually see the idea that could be > part of the base utility of C<%MY>. I think the main intent of %MY:: is to allow import() to lexically affect the caller, ie sub import { caller(1).MY{'&foo'} = sub { ... }; } (for some vague handwaving interpretation of caller() and MY) Dave. -- My get-up-and-go just got up and went.