忘れたころにかかる罠

my $url = q(http://www.google.com/search?num=100&hs=Dw4&hl=ja&client=opera&rls=ja&q=perl&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=);
$p = index($url, "?");
print ($p < 0) ? $url : substr($url, 0, $p);

さて、これはなんて表示されるでしょうか?
答え、何も表示されない。


3項演算子、つい昔から条件式を括弧で括りたくなる。
だけど、perlのprintでこれをやるとアウト。
括弧の中身しか表示されない罠。

後よくやるのは、これ。

print (split)[2]

splitで切り出して、その3番目の値を表示したいときに、つい括弧で囲い忘れる。

知っていてもついやってしまう。まあ、本当はprint以外でも
こういう作用するのはあるけど、printのこれは質が悪い。。。