我确定我错过了一些东西,需要另一双眼睛。我已经启用警告并使用严格我试图提取变量中的双引号之间,例如:
my $line = ' TITLE "Better off Faded"';
(my $title = $line) =~ s/"(.*?)"/$1/g;
print "title: [$title]\n";
print "MATCHDATA: <$`|$&|$'>\n";
print "capture1: $1\n";
这将产生输出:
title: [ TITLE Better off Faded]
MATCHDATA: < TITLE |"Better off Faded"|>
capture1: [Better off Faded]
看起来捕获正在工作,但替换命令只是从$title变量中删除双引号字符,而不是用$1捕获填充它。
由于捕获工作正常,我已经知道我可以使用:
my $data = ($line =~ /"(.*?)"/)[0];
print "alt: [$date]\n";
从双引号中提取数据,但为什么替代品不起作用?