print (1+2)+3;
を実行すると、3 と表示される。
最初はどうしてかわからなかったが、
以下のようにしてみるとわかる。
print (1+2);
print "\n";
print (1+2)+3;
print "\n";
$a=print(1+2);
print "\n";
$a=print(1+2);
print "\n";
print $a;
print "\n";
print (1+2)+3;
print "\n";
上記の出力結果は以下のようになる。
3
3
3
3
1
3
printという関数は引数を表示して結果を返す。
perl -e "print print \"hello\""
上記を実行すると
hello1
と表示される。helloの後ろにくっついている1は、print "hello" の実行結果である。
下記は「(1+2)の結果をprintし、その実行結果の値に3を足す」という意味になる。
print (1+2)+3
成功したらTRUE(1)なので1+3=4となるが、その値はprintされないので、
print(1+2) の結果の 3 のみが表示される。
もし (1+2)+3 という式の結果をprintしたいのであれば、以下のようにする必要がある。
print ((1+2)+3)