> 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