假设我要解析文件
$ cat toParse.txt 1 2 3 4 5 1 "2 3" 4 5 1 2" 3" 4 5
前两行很容易解析: Text::CSV可以处理。例如,我试过:
使用严格;
使用文本::CSV;
尽管() {
咀嚼$_;
我的 $csv = Text::CSV->new({ sep_char => ' ', quote_char => '"' , binary => 1});
$csv->解析($_);
我的@fields = $csv->fields();
我的 $badArg = $csv->error_input();
打印“字段[1] = $fields[1]\n”;
print "错误参数:$badArg\n\n";
}
但是,如果引号字符包含在标记化字段中,CSV 会变得非常混乱。
上面的程序打印出来:
字段[1] = 2 不好的论点: 字段[1] = 2 3 不好的论点: 字段[1] = 错误参数:1 2" 3" 4 5
有没有人有什么建议?我希望最后fields[1]填充2" 3 "... 换句话说,我想在引号字符串中不包含的任何空格上拆分行。