> -----Original Message----- > From: Adam Turoff [mailto:[EMAIL PROTECTED] > On Tue, Nov 25, 2003 at 01:03:19PM +1100, Damian Conway wrote: > > Schwern observed:
> > Perhaps this is yet another argument for insisting on: > > > > while do {$n++; $foo > $bar} > > > > instead. > > That looks like syntactic sugar for > > while (do) {$n++; $foo > $bar} > > and could be interpreted as either: > > while "do" {...} ## perl5 bareword > while do() {...} > > Luke's "then" feels like the best fit on the one hand, and the worst fit > on the other. Everything else feels worse, though. Hmm. Why not just explicitly allow semicolon when surrounded by parens? while ($n++; $foo > $bar) {...} Removing the parens changes the results, which is just what you'd expect mathematically. $f = (0, 1, 2, $n++, $foo > $bar); # List $f = (0; 1; 2; $n++; $foo > $bar); # Sequence of statements, three useless. "C" style C<for> loops then look like: for (($a = 0; $b = $num_elts); $a < @arry; ($a++; $b -= $offset)) {...} Which is on the one hand yucky, but on the other hand very explicit. (I suppose I could propose using semicolon for the list separator, but that would drive the syntax-highlighters insane, and I like syntax-highlighting.) =Austin PS: An immediate drawback that occurs to me is that of catching unbalanced parens -- when the statement terminator is a valid sequence delimiter, all the rest of the code looks like a sequence. But the first nesting closing brace would probably catch that.