要素のリストがあるとしましょう
@list=(1,2,3);
#desired output
1,2,3
それらをカンマ区切りの値として出力したいと思います。最も重要なことは、最後の要素の後にカンマを付けたくないということです。
Perlでこれを行う最もクリーンな方法は何ですか?
要素のリストがあるとしましょう
@list=(1,2,3);
#desired output
1,2,3
それらをカンマ区切りの値として出力したいと思います。最も重要なことは、最後の要素の後にカンマを付けたくないということです。
Perlでこれを行う最もクリーンな方法は何ですか?
print join(',', @list), "\n";
いくつかのオプションがあります。最も一般的なのは、それらをjoin
関数で結合することです。
print join(',', @list), "\n";
もう 1 つの方法は、ステートメントに影響を与える特殊変数を変更することです。print
たとえば、上記の効果は次の方法で実現できます。
$, = ",";
$\ = "\n";
print @list;
二重引用符で囲まれた展開が行われた場合、リストに自動的に参加することもできます。
$" = ",";
print "@list","\n";
$,
、$\
またはなどの特殊変数を変更すると$"
、グローバルに設定されることに注意してください。これを回避するには、local
キーワードを使用してオペランドをブロックで囲みます。
単純なケースにjoin
は最適です。
しかし、CSV ファイルを作成または解析したい場合は、Text::CSVを使用することをお勧めします。コンマの引用とエスケープ、およびその他のあらゆる種類の有害な問題を処理します。また、非常に高速です。
join(',', @list);
コンマでリストを結合します。
@list=(1,2,3);
$output = join(",",@list);