Re: statement modifiers for setting variables

2005-04-19 Thread Larry Wall
On Mon, Apr 18, 2005 at 06:01:48PM -0700, Dave Whipp wrote:
: The following is legal perl:
: 
:   print $a $b $c if ($a,$b,$c)=(1,2,3);
: 
: This prints 1 2 3, but the definitions obviously aren't scoped to the 
: modified statement. And a Cmy in the modifier is a bit too late.
: 
: Any reason to [not] add a Cwhere statement modifier which restricts 
: the scope of the declarations?

Already used where for subtype constraints.

: Sure its redundant, but so are all 
: statement modifiers. Sometimes its good to factor things out and express 
: them later, rather than earlier. It lets us focus on the important 
: things first:
: 
:   print $a $b $c where ($a,$b,$c)=(1,2,3);
: 
: (in this case, we could use printf to to the factoring, but that's not a 
: general solution).

Okay, here's a slightly more general solution:

{ print $^a $^b $^c }.(1,2,3);

Larry


statement modifiers for setting variables

2005-04-18 Thread Dave Whipp
The following is legal perl:
  print $a $b $c if ($a,$b,$c)=(1,2,3);
This prints 1 2 3, but the definitions obviously aren't scoped to the 
modified statement. And a Cmy in the modifier is a bit too late.

Any reason to [not] add a Cwhere statement modifier which restricts 
the scope of the declarations? Sure its redundant, but so are all 
statement modifiers. Sometimes its good to factor things out and express 
them later, rather than earlier. It lets us focus on the important 
things first:

  print $a $b $c where ($a,$b,$c)=(1,2,3);
(in this case, we could use printf to to the factoring, but that's not a 
general solution).