附录一
$ cat toParse.txt 1 2 3 4 5 1 "2 3" 4 5 1 2" 3 " 4 5
头两条线很容易穿透:<代码>Text:CSV可处理。 例如,我尝试:
use strict; use Text::CSV; while() { chomp $_; my $csv = Text::CSV->new({ sep_char => , quote_char => " , binary => 1}); $csv->parse($_); my @fields = $csv->fields(); my $badArg = $csv->error_input(); print "fields[1] = $fields[1] "; print "Bad argument: $badArg "; }
然而,如果所引述的特性载于,则CSV会感到非常混乱。
上述节目印刷如下:
fields[1] = 2 Bad argument: fields[1] = 2 3 Bad argument: fields[1] = Bad argument: 1 2" 3 " 4 5
是否有任何建议? 我与最后的<代码>fields ***一样,以2”3“
为代表,换言之,我要把这条线与任何未载于引示的白色空间分开。