6.5.1 配列とprintf
少し工夫すれば、配列もリストコンテキストでprintf命令の引数として簡単に使用できる。
例えば、はてな主要サービス名を整形して出力するとする。
工夫をしないと、
my @services = qw( hatena.question hatena.antenna hatena.bookmark hatena.diary ); printf "hatena services are...\n%20s\n%20s\n%20s\n%20s\n", @services;
この様なコードとなり、事前に配列servicesの要素数ぶん"%20s\n"を記述する必要がある。
が、
printf "hatena services are...\n%20s\n%20s\n%20s\n%20s\n", @services;
この部分を
printf "hatena services are...\n" . ("%20s\n" x @services), @services;
このように書くことで配列servicesに更に要素を追加した時でも、変更が不要となる。
ちなみに出力結果は以下のようになります。
hatena services are...
hatena.question
hatena.antenna
hatena.bookmark
hatena.diary