一直以来都使用Text::CSV_XS操作CSV文件
a, 读取:
while(<FH>) {
my $status = $csv->parse($_);
my @columns = $csv->fields();
...
}
b, 写入:
my $status = $csv->combine(@columns);
if ($status) {
my $line = $csv->string();
print $fh_output_file "$line/n";
}
可是上面的读取和写入方法不能处理一个field中有多行数据的CSV
采用下面的处理方法则不会存在这样的问题:
a, 读取:
while(my $arrayref = $csv->getline($io)) {
...
}
b, 写入:
my $status = $csv->print($fh_output_file, /@columns);
备注:
Text::CSV_XS的官方使用文档