Perl 当一行包含额外的未转换双引号时,如何使用Text::ParseWords::parse_行?

Perl 当一行包含额外的未转换双引号时,如何使用Text::ParseWords::parse_行?,perl,parsing,Perl,Parsing,我正在使用parse_linefrom来解析一行文本。但是,当一对双引号中有一个未替换的双引号(“)时,解析行失败 例如: use Text::ParseWords; ... my $line = q(1000,"test","Hello"StackOverFlow"); ... @arr = &parse_line(",",1,$line); 我不想转义内部双引号(例如,“Hello\”StackOverFlow“) 是否有其他方法来解析该行?使用@TLP和@ThisSuitesB

我正在使用
parse_line
from来解析一行文本。但是,当一对双引号中有一个未替换的双引号(
)时,
解析行
失败

例如:

use Text::ParseWords; 
...
my $line = q(1000,"test","Hello"StackOverFlow");
...
@arr = &parse_line(",",1,$line);
我不想转义内部双引号(例如,
“Hello\”StackOverFlow“


是否有其他方法来解析该行?

使用@TLP和@ThisSuitesBlacknot注释:

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'
        ];

如果您有csv数据,可能
Text::csv
允许使用带有某些选项的松散引号。@TLP宾果。另外,将
escape\u char
设置为除
以外的其他内容。与您的问题无关的旁注:在调用子例程时,您不应该使用
&
,除非您知道它的作用,并且有充分的理由。非常感谢。但是我需要使用parse\u line函数。是否有任何方法可以解析“之间的”就像“你好”StackOverFlow“===>“你好”StackOverFlow一样