假设我有一个元素列表

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

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

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

有帮助吗?

解决方案

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

其他提示

您有几个选择。最通用的是加入 join 功能:

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

另一种方法是修改 特殊变量, ,影响 print 陈述。例如,可以通过

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

您也可以自动加入列表,如果列表进行了双重引用的扩展:

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

请注意,如果您修改特殊变量,例如 $,, $\ 或者 $", ,您将它们设置在全球。为了避免它,请使用 local 关键字并将操作数封闭在一个块中。

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

但是,如果您想制作或解析CSV文件,最好使用 文字:: CSV. 。它将处理引用和逃避逗号以及其他各种有害问题。它也非常快。

join(',', @list);

加入逗号。

@list=(1,2,3);
$output = join(",",@list);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top