9

要素のリストがあるとしましょう

@list=(1,2,3);
#desired output
1,2,3

それらをカンマ区切りの値として出力したいと思います。最も重要なことは、最後の要素の後にカンマを付けたくないということです。

Perlでこれを行う最もクリーンな方法は何ですか?

4

5 に答える 5

21
print join(',', @list), "\n";
于 2010-05-21T15:48:51.947 に答える
10

いくつかのオプションがあります。最も一般的なのは、それらをjoin関数で結合することです。

print join(',', @list), "\n";

もう 1 つの方法は、ステートメントに影響を与える特殊変数を変更することです。printたとえば、上記の効果は次の方法で実現できます。

$, = ",";
$\ = "\n";
print @list;

二重引用符で囲まれた展開が行われた場合、リストに自動的に参加することもできます。

$" = ",";
print "@list","\n";

$,$\またはなどの特殊変数を変更すると$"、グローバルに設定されることに注意してください。これを回避するには、localキーワードを使用してオペランドをブロックで囲みます。

于 2010-05-21T15:55:44.353 に答える
5

単純なケースにjoinは最適です。

しかし、CSV ファイルを作成または解析したい場合は、Text::CSVを使用することをお勧めします。コンマの引用とエスケープ、およびその他のあらゆる種類の有害な問題を処理します。また、非常に高速です。

于 2010-05-21T17:16:46.787 に答える
3
join(',', @list);
于 2010-05-21T15:49:03.387 に答える
2

コンマでリストを結合します。

@list=(1,2,3);
$output = join(",",@list);
于 2010-05-21T15:49:50.523 に答える