On Thu, 15 Jul 2010, Jan Dubois wrote: > Once you implement magic/overloads that violate the underlying algebraic > relationships in your overloaded operators you will end up in a world > of pain. E.g. the following expressions should always be true: > > ($a + $b) == ($b + $a) > ($a < $b) == ($b <= $a) > "$a" eq $a > ($a eq $b) && ($b eq $c) == ($a eq $c) It just occurred to me (to continue the "close the circle" meme): ($a.$a) eq ($a x 2) which ties this back to the rule that FETCH magic needs to be side-effect free as well. How does it make sense that the left side should call FETCH magic twice when the right side can get away with calling it only once? Cheers, -JanThread Previous | Thread Next