Perl:如何在一个不带引号的字符实例上拆分字符串

Spa*_*ose 1 perl split

在perl中,如何仅沿着不带引号的分隔符拆分字符串?即以下字符串:

my $line = '"a quoted, comma", word1, word2';
Run Code Online (Sandbox Code Playgroud)

应该导致一个包含元素的数组:

"a quoted, comma"
 word1
 word2
Run Code Online (Sandbox Code Playgroud)

ser*_*sat 7

您可以使用parse_line()文字:: ParseWords.

use  Text::ParseWords;

my $line = '"a quoted, comma", word1, word2';

my @parsed = parse_line(',', 1, $line);

# print "@parsed\n"; # this will print in single line

# To print in new line
foreach (@parsed)
{
    print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)

输出:

"a quoted, comma"
 word1
 word2
Run Code Online (Sandbox Code Playgroud)