第36回 Perlで小技4
print について
今まで、なにげなしに、printを使ってきたが、
printの挙動について、ちょっと詳しくみてみよう。
配列をそのまま与える
つぎのように、配列をそのまま与えてみる
ソース
use strict; my @c = ('aaa', 'bbb', 'ccc'); print @c, "\n";
結果
aaabbbccc
Perlの解釈
これは、以下のように@cが展開されている
print 'aaa', 'bbb', 'ccc', "\n";
参考:第10回 今までの知識を総動員して、Data::Dumperを理解する - bingo_nakanishiの他言語出身者のためのPerl入門
配列を"(ダブルクォートで囲う)
では、次のように配列を"(ダブルクォートで囲う)とどうなるだろうか?
ソース
use strict; my @c = ('aaa', 'bbb', 'ccc'); print "@c", "\n";
結果
aaa bbb ccc
このようにスペース入りで表示することができるので、便利である。
実際問題、これは、printの能力ではなく、
ダブルクォートの能力である。
次のソースで見てみよう
ソース
use strict; my @c = ('aaa', 'bbb', 'ccc'); my $d = "@c"; print $d, "\n";