> lvalue subs should receive the rvalue as an argument
Here here! Amen!
> sub name : lvalue {
I don't think the :lvalue is needed. This isn't really an attribute - if
someone writes:
$r->name = 'Mithrandir';
there's no confusion that it's assigning it. I think you'd wind up with
people having every sub declared as :lvalue just in case they decided to
assign to it later.
> $obj->method($x, $y) = $z;
>
> and have the method called as if written:
>
> $obj->method($x, $y, $z);
*Great* extension. I like this alot.
One more thing to work out: How does something like this work?
($r->func1, $r->func2) = split;
They both take @_ and slurp it, right? The easiest implementation is
that func1 gets everything. The trickier one is that it depends on the
function protoype if one exists. So:
sub func1 ($$$) { }
sub func2 ($$) { }
Means that func1 would get the first 3 args, func2 would get the next 2,
and the rest would be discarded. Food for thought.
-Nate