我正在使用Text::ParseWords中的parse_line
来解析一行文字。但是,当一对双引号内有未转义的双引号("
)时,parse_line
会失败。
例如:
use Text::ParseWords;
...
my $line = q(1000,"test","Hello"StackOverFlow");
...
@arr = &parse_line(",",1,$line);
我不想逃避内部双引号(例如"Hello \"StackOverFlow"
)。
还有其他方法可以解析这条线吗?
答案 0 :(得分:0)
使用@TLP和@ThisSuitIsBlackNot notes:
use 5.022;
use Text::CSV;
use Data::Dumper;
my $line = q(1000,"test","Hello"StackOverFlow");
my $csv = Text::CSV->new( {allow_loose_quotes => 1, escape_char => '%'});
$csv->parse($line);
my @fields = $csv->fields();
print Dumper \@fields;
__DATA__
$VAR1 = [
'1000',
'test',
'Hello"StackOverFlow'
];