Hatena::Grouparaistudy

iwasekiの日記

2006-10-04

[][]2つのprint文の出力結果に違いがでる はてなブックマーク - 2つのprint文の出力結果に違いがでる - iwasekiの日記

#!/usr/bin/perl -w

@list = (1..5);

print @list;
print "\n";

print "@list\n";

結果

12345
1 2 3 4 5

なんで実行結果が違うの?ってことを調べたわけですが。

結局id:czk-htnさんにお伺いを立てたところ、

配列変数は、ダブルクォート文字列中で、配列のすべての要素を変数 <$``> (Englishでは $LIST_SEPARATOR) 中に示す区切り文字(デフォルトはスペース) でつなげて展開されます。

perldata - Perl のデータ型

ってことなんだそうな。つまり、

print "@list\n";

の時は区切り文字付で出力されるってことだね。

うーん、難しいところに足を突っ込んじゃった感じ。けど、疑問が解けてすっきりしました。

id:czk-htnさん、ありがとうございました。

参考リンク

google:perl 変数 展開

google:perl $LIST_SEPARATOR