> 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

Reply via email to