On Wed, Jun 08, 2005 at 11:40:49AM +0200, "TSa (Thomas Sandlaß)" wrote: : Damian Conway wrote: : >So, to clarify again, if $var is undefined, then the assignment: : > : > $var op= $value; : > : >is equivalent to: : > : > $var = (&op.does(identval) ?? &op.identval() :: undef) op $value; : > : >Correct? : : Might I add that it should read : : $var = (&op.does(identval) ?? : &op.identval($value) :: undef) op $value; : : The rational is, that &op is subject to MMD, so the .identval method : should be dispatched as well. Actually &op.identity($value) reads : quite natural and self documenting if the parameter is required.
I don't think there's a double dispatch there. I think &op just knows it can default its left argument to an existing attribute value if it (somehow) knows it's part of an assignment op. There's not a lot of payback in getting all abstract here, as far as I can see. Larry