Even if you have a sub q{}
, calling q()
will be parsed as the q()
operator. Calling &q()
or main::q()
gets you the function. This test verifies this behavior for nine different operators.
from irc://irc.perl.org/p5p 2004/08/12
<kane-xs> bug or feature?
<purl> You decide!!!!
<kane-xs> [kane@coke ~]$ perlc -le'sub y{1};y(1)'
<kane-xs> Transliteration replacement not terminated at -e line 1.
<Nicholas> bug I think
<kane-xs> i'll perlbug
<rgs> feature
<kane-xs> smiles at rgs
<kane-xs> done
<rgs> will be closed at not a bug,
<rgs> like the previous reports of this one
<Nicholas> feature being first class and second class keywords?
<rgs> you have similar ones with q, qq, qr, qx, tr, s and m
<rgs> one could say 1st class keywords, yes
<rgs> and I forgot qw
<kane-xs> hmm silly...
<Nicholas> it's acutally operators, isn't it?
<Nicholas> as in you can't call a subroutine with the same name as an
operator unless you have the & ?
<kane-xs> or fqpn (fully qualified package name)
<kane-xs> main::y() works just fine
<kane-xs> as does &y; but not y()
<Andy> If that's a feature, then let's write a test that it continues
to work like that.