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