Picked up from slashdot:
> I really dislike having a concatenation operator that's a valid identifier
> character. There's just no reason for it.
> And I don't completely buy the excuse that we're running out of punctuation
> characters. If you're going to jumble some of them up and talk about the
> "Huffman" reason for picking multi-character operators for some and not
> for others: let's do a little more housecleaning. Get rid of the bit
> operators as punctuation characters and make them named operators. That frees
> up some punctuaction for something that's not used very often anyway.
> BTW, if you're under the impression that they're used frequently try:
> for i in `find /usr/local/lib/perl5 -name *.pm`;
> do if perl -wc $i >/dev/null 2>&1; then perl -MO=Terse $i | grep 'bit_';
> fi done >> bitops
> Sure it doesn't pick up everything (late compilation), but in the 1056 files
> I have there I had exactly 7 occurances of bit operators. This does not
> impress me enough to use valuable punctuation.
Now, I just tried it on perl5.6.1, and roughly speaking he's right.
I get eight. They are:
/usr/local/lib/perl5/5.6.1/sun4-solaris/B/Concise.pm
SVOP (0x20c7a0) const PV (0x217ac4) "bit_and"
SVOP (0x20c7c8) const PV (0x217ad0) "bit_xor"
SVOP (0x20c7f0) const PV (0x217adc) "bit_or"
/usr/local/lib/perl5/5.6.1/sun4-solaris/File/Glob.pm
BINOP (0x2003f8) bit_or [21]
/usr/local/lib/perl5/5.6.1/File/Temp.pm
BINOP (0x2c7bf8) bit_or [13]
BINOP (0x2c7b30) bit_or [11]
BINOP (0x2c7f40) bit_or [19]
BINOP (0x2c2118) bit_or [29]
So, maybe this would be a good way to supplement the language design, by
categorizing how popular given operators are in actual practise?
Ed
(ps- as for the concatenation operator remark, all I can say is that I hope that
something else is done, else statements like $my_variable _ FUNCTION are going
to look awful confusing...)