On Sat, May 07, 2005 at 02:23:15PM +0200, Juerd wrote:
: Matt Creenan skribis 2005-05-07  1:47 (-0400):
: > I thought about $blockname <= { ... }, but <= is obviously taken, as is <==
: >     $blockname <=: for 1..5 {
: >     $blockname :=> for 1..5 {
: >     } $blockname;
: >     } <=: $blockname;
: >     } $blockname;
: >     $blockname for 1..5 {
: >     $blockname -- for 1..5 {
: >     } -- $blockname;
: >     } $blockname;
: >     $blockname @ for 1..5 { # Yeah I know @ is probably impossible
: >     } @ $blockname;
: >     $blockname ??? for 1..5 {
: 
: IMO, all of these are worse than "label:". And most of your syntaxes
: limit labels to blocks, while currently they can be placed before any
: statement, and it has been said that this behaviour is preferred.

Labels will remain on statements.  However, you can sneak a statement
(including its label) into the middle of an expression by using "do":

    $outer = do LINE: for =$IN {...; $inner ==> leave LINE }

Note that "do" no longer requires braces unless you wish to continue the
expression after the do.  Which we can get away with because do-SUB
is gone and do-File is renamed to evalfile or some such.  Maybe it
can be demoted to

    eval requirefinder($filename);

since we're trying to discourage use of do-File anyway, and we can probably
abstract out the parts that require and do-File have in common.

Larry

Reply via email to