I now realize that my previous message was a little hard to read (plus I
sounded a bit harsh, which I did not mean to be, I was just excited,
thinking about this), because I insisted on being sort of stilted in my
pseudo-BNF. Here's a cleaner shot at what I meant:
flow:
control 'else' flow |
control 'else' block |
control ;
control:
controlkey expr '->' closuredef |
controlkey expr block |
'loop' block |
'loop' expr ';' expr ';' expr block ;
controlkey:
'if' | 'unless' | 'while' | 'until' | 'for' | 'when' ;
block: '{' statements '}'
That should be a bit easier to appreciate. I find myself looking at this
and loving Perl just a little bit more....
Again, my example from before:
unless my $fh = $x.open {
die "Cannot open $x: $!";
} else while $fh.getline -> $_ {
print;
} else {
die "No lines to read in $x";
}
That does seem to roll of the tongue, does it not?