假设我有一个元素列表
@list=(1,2,3);
#desired output
1,2,3
我希望将它们打印为逗号分隔值。最重要的是,我不希望最后一个元素后面有逗号。
Perl中最干净的方法是什么?
答案 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);