Re: RFC 118 (v1) lvalue subs: parameters, explicit assignment, and wantarray() changes

[email protected] (Damian Conway) Thu, 17 Aug 2000 07:04:56 +1000 (EST)
Newsgroups perl.perl6.language.subs
Message-ID <[email protected]>
   > This would change the perl5 meaning of lvalue subroutines.  Currently
   > you must have the lvalue as the last value before the return, and the
   > assignment is implicitly done by Perl.  I advocate making it explicit:
   > 
   >   # this is perl5
   >   sub foo :lvalue {
   >     $variable;		# am I rvalue or lvalue sub?  I don't know
   >   }
   >   foo = 5;		# implicitly $variable = 5
   > 
   > I would now have this as:
   > 
   >   # this is perl6
   >   sub foo :lvalue ($new) {
   >     $variable = $new;
   >   }

So how do I do:

	foo += 5;
	foo -= 5;
	foo *= 5;
	foo /= 5;
	foo %= 5;
	foo ||= 5;
	foo &= 5;
	#etc.

(which I can do now)?

I think the proposal is cute, but dead wrong -- because it solves too
specific a problem.

I intend to counter-RFC it with an even more general lvalue mechanism
than is currently available, plus a suggestion that operator= be
overloadable.

When that truck-load of tuits I ordered arrives.

Damian