【发布时间】:2013-09-02 12:42:46
【问题描述】:
由于数据中的换行问题,我已从 Text::CSV 移至 XS 版本 Text::CSV parsing when data contains newline
Text::CSV_XS 删除数据中的所有转义字符 (我正在使用带有 perl 5.8.8 的 linux) 这是示例代码(如下)
我希望第 3 行的属性在转义 1 \ 后应该是 \N,但是 Text::CSV_XS 会同时删除 \
use strict;
use warnings;
use Text::CSV_XS;
my $csv = Text::CSV_XS->new({
binary => 1,
eol => "\n",
quote_char => '"',
escape_char => '\\',
auto_diag => 2,
allow_loose_escapes => 1,
}) or die "Can't create CSV parser";
while( my $row = $csv->getline(\*DATA) ) {
print join(" ",@{$row})."\n";
}
__DATA__
ata,atb,atc
1a,"1b
1b-continued",1c
\\N,2b,2c
这是输出
ata atb atc
1a 1b
1b-continued 1c
N 2b 2c
【问题讨论】:
-
如果你设置了
escape_char => '\\',它只会删除反斜杠。我想知道您是否没有误解该选项的作用。