On Thu, Jan 22, 2004 at 08:08:13PM -0500, Joe Gottman wrote: : I just realized a potential flaw here. Consider the code : $a >>= 1; : : Will this right-shift the value of $a one bit and assign the result to $a : (the current meaning)? Or will it assign the value 1 to each element in the : array referenced by $a (as suggested by the new syntax). Both of these are : perfectly valid operations, and I don't think its acceptable to have the : same syntax mean both. I'm aware that using "»=" instead of ">>=" will : eliminate the inconsistency, but not everyone has easy access to Unicode : keyboards.
Well, $a >>=<< 1 would still presumably be unambiguous, and do the right thing, albeit with run-time dwimmery. On the other hand, we've renamed all the other bitwise operators, so maybe we should rename these too: +< bitwise left shift +> bitwise right shift which also gives us useful string bitshift ops: ~< stringwise left shift ~> stringwise right shift as well as the never-before-thought-of: ?< boolean left shift ?> boolean right shift Those last would be a great addition insofar as they could always participate in constant folding. Er, unless the right argument is 0, of course... :-) Ain't orthogonality wonderful... Larry