假设我有一个元素列表
@list=(1,2,3);
#desired output
1,2,3我想把它们打印成逗号分隔值。最重要的是,我不希望最后一个元素后面有逗号。
在Perl中做这件事最干净的方法是什么?
发布于 2010-05-21 23:48:52
print join(',', @list), "\n";发布于 2010-05-21 23:55:44
您有几个选项。最常见的是使用join函数将它们连接起来:
print join(',', @list), "\n";另一种方法是修改special variables,这会影响print语句。例如,上面的效果可以通过以下方式来实现
$, = ",";
$\ = "\n";
print @list;如果列表经过双引号扩展,您也可以自动加入列表:
$" = ",";
print "@list","\n";请注意,如果您修改特殊变量,如$,、$\或$",则需要全局设置它们。要避免这种情况,请使用local关键字并将操作数包含在块中。
发布于 2010-05-22 01:16:47
对于简单的情况,join是完美的选择。
但是,如果您想生成或解析CSV文件,最好使用Text::CSV。它将为您处理引号和转义逗号以及其他各种有害的问题。它也是非常快的。
https://stackoverflow.com/questions/2883540
复制相似问题