Hi,
Larry Wall wrote:
> On Sun, Nov 06, 2005 at 03:10:40PM +0100, Ingo Blechschmidt wrote:
[ => should not automatically bind its .value to the RHS ]
> I think binding directly to .key or .value is different from what =>
> does. So after
>
> $pair = $key => $value;
>
> setting $value doesn't change $value, but after
>
> $pair.value := $value
>
> it does.
Yep, of course.
> We could have an => equivalent that does binding rather than
> copying:
[ :=>, :>, ::>, etc. ]
Personally, I think that these operators are not needed. In my PIL to
JavaScript compiler, I used the equivalent of =:> exactly two times,
and I did not mind declaring &infix:«=:>» myself, as it's such a short
and very readable declaration:
my sub infix:«=:>» ($key, $value is rw) {
my $pair = ($key => $value);
$pair.value := $value;
$pair;
}
> our pairs are containers, not values. Maybe \(key => $value) is
> how you turn => into ::>, since in the case of an arglist you have
> to be able to bind to the original $value.
Makes sense. :)
--Ingo