"Trey Harris" <[EMAIL PROTECTED]> wrote i
> It's easy to just say "don't nest placeholder-using closures," but that
> doesn't seem workable in practice since every block is a closure, unless
> placeholders are forbidden from all but the most trivial cases.  Absurdly
> trivial, it seems.  How about
>
>   $sub = { if $^a { $^b = $^a } };

I would like to think that not all blocks have the same context. We could
define a "placeholder" scope as being a lexical scope that sends data to a
block. Thus C<for>, C<map, C<grep> etc., all introduce lexical scopes that
are tagged as placeholder scopes; but C<if> and C<while> do not. Its a bit
like an inside-out-in-reverse C<wantarray> concept.


Dave.


Reply via email to