Mik*_*ike 8 perl text-formatting
假设我有一个元素列表
@list=(1,2,3);
#desired output
1,2,3
Run Code Online (Sandbox Code Playgroud)
我想以逗号分隔值打印它们.最重要的是,我不希望最后一个元素后面有逗号.
在Perl中最干净的方法是什么?
P S*_*ved 10
你有几个选择.最通用的是将它们与join函数连接起来:
print join(',', @list), "\n";
Run Code Online (Sandbox Code Playgroud)
另一种方法是修改影响语句的特殊变量print.例如,可以实现上述效果
$, = ",";
$\ = "\n";
print @list;
Run Code Online (Sandbox Code Playgroud)
如果它经历双引号扩展,您也可以自动加入列表:
$" = ",";
print "@list","\n";
Run Code Online (Sandbox Code Playgroud)
请注意,如果您修改特殊变量$,,$\或者$",则可以全局设置它们.要避免它,请使用local关键字并将操作数括在一个块中.
对于简单的情况,join是完美的.
但是如果要生成或解析CSV文件,最好使用Text :: CSV.它将为您处理引用和转义逗号以及各种其他有害问题.它也非常快.
| 归档时间: |
|
| 查看次数: |
10786 次 |
| 最近记录: |