Perl日記

PerlとかRubyとかPHPとかPythonとか

printとstatでつまづいた話

statの挙動なんだっけーと思いつつ以下のようにしたらエラーになった。

$ perl -le 'print (stat("test.pl"))[9]'
syntax error at -e line 1, near ")["

え、statは配列を返すからそのスライスってことであってるでしょーと文句を言いたくなったけれど、
右ばっかり見てて、よく見たらprint()してた
つまりこう解釈されてたわけだ。

# error
$ perl -le 'print(stat("test.pl"))[9]'

「関数呼び出しに添え字なんてつけられません」ということだった。
だからまあきっちりやるなら

# ok
$ perl -le 'print ((stat("test.pl"))[9])'

かっこで外側をくくってやればよい。