Miko wrote:

> I don't know if we're talking about the same thing, but I live using loops
> that declare variables in the test, so please exegize me.  Which of these
> lines, if any, would cause a compiler error or warning?
> 
>   while my $cond = blah() {
>     ...
>     }
>   else {
>     print $cond;
>   }
> 
>   print "The condition is: $cond\n";
> 
> If none then you're seriously rocking my world.

Then I'm seriously rocking your world.

In Perl 6 a lexical variable is scoped to the block in which it's declared.
Since C<$cond> is declared in the block *containing* the C<while> and C<else>,
it's scoped to that block. So you can use it inside the C<while>'s block,
inside the C<else>'s block (assuming Larry allows such a construct), and in
the following C<print> statement.

Damian

Reply via email to