From: Brent Dax [mailto:[EMAIL PROTECTED]]
> Garrett Goebel:
> # Larry Wall in Apocalypse 4 writes:
> # > this special rule only applies to constructs that take a
> # > block (that is, a closure) as their last (or only) argument.
> # > Operators like sort and map are unaffected. However, certain
> # > constructs that used to be in the statement class may become
> # > expression constructs in Perl 6.
> #
> # Does that mean there may still be constructs which take a
> # block, as their last argument, but which don't require a
> # semicolon if they can be written as one-liners?
> #
> # How terribly unpopular would it be if the "when do I need
> # to use a semicolon" question was simply answered:
> #
> # is block-ending construct's final curly on a line by itself ? 0 : 1
>
> Oooh, there's a problem with that concept:
>
> if(foo) {
> bar
> } #There's a semicolon here...
> else { #which leaves this else dangling!
> baz
> }
Really?
Isn't the C<else>'s block the one with the final curly in the if/elsif/else
statement?
And throwing caution to the wind... I'm one of the fools that prefers:
if foo {
1
} elsif bar {
2
} else {
3
}
I don't like lining up your C<elsif>'s and C<else>'s with C<if>'s because
visually it makes it look like a separate statement (to me). I don't mean to
disgress into matters of taste... but it would certainly be nice if all
constructs with dangling blocks could be expected to follow the same rules.