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