in reply to Re^3: Duh. 'my' scope in if else blocks. (implicit)
in thread Duh. 'my' scope in if else blocks.

For up to date information on Perl 6 you should look at the Synopsis.

To summarize the current state, for just takes a block and feeds as many scalars as needed into that block.

The block can either be a "pointy" block:

for @list -> $a { # here $a is local'ized in the perl 5 sense }

Or you can use the "weird scoping" twigil for placeholder arguments:

for @list { say $^a; # $^a is only available in this block }

I think that just reusing a lexical variable if there is one available doesn't fit very will into the current concept of blocks and captures.

Perhaps this is one of the cases where weird/unusal scoping deserves its own twigil:

my $a; for @list -> $=a { # $=a is the "reused" version of $a } # here $a has the last value of $=a

I still don't know how much effort that is, how well it fits into the current specs, and if it's worth the trouble. But it's an interesting idea ;-)