print(1+2)+3

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)