> I haven't seen details in an Apocalypse, but Damian's
   > Perl 6 overview has a bit about it. The Apocalypse
   > specifically mentions *compile-time* scope management,
   > but Damian is, uh, Damian. (DWIMery obviously. ;)

Hmmmmmm.

It would seem *very* odd to allow every symbol table *except*
%MY:: to be accessed at run-time.


   > Is stuff like:
   > 
   >   %MY::{'$lexical_var'} = \$other_var;
   > 
   > supposed to be a compile-time or run-time feature?

Run-time.


   > Modifying the caller's environment:
   > 
   >   $lexscope = caller().{MY};
   >   $lexscope{'&die'} = &die_hard;
   > 
   > is especially annoying because it means that I can't
   > trust lexical variables anymore.

You can't trust them now.

Between source filters and Inline I can do pretty much whatever I like
to your lexicals without your knowledge. ;-)

   
   > The one good thing about Damian's caller() example is that it
   > appears in an import() function. That implies compile-time, but
   > isn't as clear as Larry's Apocalypse.

I would envisage that mucking about with symbol tables would be no more
common in Perl 6 than it is in Perl 5. But I certainly wouldn't want to
restrict the ability to do so.

How am I expected to produce fresh wonders if you won't let me warp the
(new) laws of the Perl universe to my needs?

;-)

Damian

Reply via email to