小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

Perlでのカンマ演算子とドット演算子

print文で表示する値をカンマ演算子で繋ぐ人とドット演算子で繋ぐ人がいますね。
これ、微妙に違います。以下でテストをしてみました。

テストソース

@aaa = (111, 222, 333);
@bbb = ("aaa", "bbb", "ddd", "eee");
print @aaa , @bbb , @aaa , "\n";
print @aaa . @bbb , @aaa , "\n";
print @aaa , @bbb . @aaa , "\n";
print @aaa . @bbb . @aaa , "\n";

実行結果

111222333aaabbbdddeee111222333
34111222333
11122233343
343

よって、カンマ演算子はリストコンテキストで、ドット演算子スカラーコンテキストで解釈される。


ちなみに、ドット演算子は文字列連結に使用し、カンマ演算子はリスト区切りに使用します。