我想使用Perl创建一个CSV文件并向其写入一些数据。有没有办法做到这一点?
答案 0 :(得分:25)
您可以使用Class:CSV。
use Class::CSV;
my $csv = Class::CSV->new(
fields => [qw/userid username/]
);
$csv->add_line([2063, 'testuser']);
$csv->add_line({
userid => 2064,
username => 'testuser2'
});
$csv->print();
# 2063,testuser
# 2064,testuser2
修改:有关更多库,您可以search CPAN。
答案 1 :(得分:18)
我们通常使用Text::CSV_XS
(上述Class::CSV
所基于的)
更新:下面的评论者还建议使用Text::CSV
加载Text::CSV_XS
,如果不可用,请回到Text::CSV_PP
,而不是{{3}}具有XS
依赖性,可能更容易安装。
答案 2 :(得分:12)
有多种方法可以做到。
CPAN上还有很多其他人。
当然,您可以忽略所有这些,只需使用循环,连接和打印:
my @table = (
[ 'a', 'b', 'c'],
[ 1, 2, 3 ],
[ 2, 4, 6 ],
);
for my $row ( @table ) {
print join( ',', @$row ), "\n";
}
只需运行脚本并将输出重定向到文件即可!你完成了或者你可能会疯狂并open一个文件句柄,并直接打印到文件。
但是你不会处理多行字段,嵌入式逗号,或任何可以在这种数据处理任务中弹出的其他奇怪的东西。所以要小心这种方法。
我的建议: