Dave Storrs writes: > is a Bad Thing and is going to cause a lot of bugs. I have the following > problems with it: > > for @a; @b -> $x is rw; $y { $x = $y[5] }; > > 1) This is (AFAIK) the ONLY place in Perl where a semicolon that > is not enclosed in parens is used for anything other than "end of > statement" (semi is used to separate parts of a perl5 C-style for loop > control statement, but that's in parens, so there is an indication that > the statement isn't over yet). >
in principle , first ";" can be "labelled" as stream separator since parser know that for is expecting { closure } ; the second ";" - is distinguished from ";" statement separator , since we know that we are inside sub signature and there have to be a block . That's how I understand it. > for @a ~> $x< __ @b ~> $y { $x = $y[5] }; > for @a )~ $x<, $z __ @b )~ $y { $x = $y[5] }; > for @a _ @b __ $x<, $z _ $y { $x = $y[5] }; > for @a _ @b )~ $x<, $z _ $y { $x = $y[5] }; > for @a _ @b ]~ <$x, $z _ $y { $x = $y[5] }; > > There were actually a bunch of others, but they were even less > satisfying. for @a -> $x is rw ; @b -> $y { ... } ; for @a ; @b -> $x is rw ; $y { ... } arcadi .