如何在Perl中以逗号分隔值的形式输出列表?

时间:2010-05-21 15:48:02

标签: perl text-formatting

假设我有一个元素列表

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

我希望将它们打印为逗号分隔值。最重要的是,我不希望最后一个元素后面有逗号。

Perl中最干净的方法是什么?

5 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:10)

您有几种选择。最通用的是使用join函数加入它们:

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

另一种方法是修改special variables,这会影响print语句。例如,可以用

实现上述效果
$, = ",";
$\ = "\n";
print @list;

如果它经历双引号展开,您也可以自动加入列表:

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

请注意,如果您修改$,$\$"等特殊变量,则可以全局设置它们。要避免它,请使用local关键字并将操作数括在一个块中。

答案 2 :(得分:5)

对于简单的情况,join是完美的。

但是如果您想生成或解析CSV文件,最好使用Text::CSV。它将为您处理引用和转义逗号以及各种其他有害问题。它也很快。

答案 3 :(得分:2)

join(',', @list);

答案 4 :(得分:2)

用逗号加入列表。

@list=(1,2,3);
$output = join(",",@list);