> Two solutions to the problem of accessing 'what' returned false are:
>
> 1) don't allow it.
> 2) Alias the value of the while/loop/if conditional into a special
> variable.
>
> while( blah() ) {
> ..
> } else { print $COND; }
>
> It's ugly, but it works, and doesn't break the holy scoping rules.
It's also unnecessary. The Holy Scoping Rules actually work in your favour in
this case. In Perl 6 you can just do this:
while my $cond = blah() {
...
}
and C<$cond> is defined *outside* the block. So if Larry were to allow C<else>
on loops, you'd be able to write:
while my $cond = blah() {
...
}
else {
print $cond;
}
Given how rarely this kind of thing is actually needed (I've *never* used such
a construct), I suspect that an explicit variable is adequate.
Damian