Larry Wall writes:
> 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
I could have sworn we already did that. I thought they were:
+<<
+>>
But I guess that's an extra unneeded character.
Luke
> which Ãlso 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