sub func {
my ($n) = @_;
return unless ($n);
my @array;
push @array, $1 while $n =~ /
((?:
[^(),]+ |
( \(
(?: [^()]+ | (?2) )*
\) )
)+)
(?: ,\s* | $)
/xg;
return \@array;
}
for my $item (@array) {
if (index($item, '$n') != -1) {
print "HELLO\n";
}
}
我有上面的正则表达式将一些字符串拆分成数组。它工作正常。
问题是:
Perl 评论家给出以下错误。请告诉我如何解决这个问题。
在第 150 行捕获在条件之外使用的变量, 'push @array, $1 while $n =~ /' 附近。(严重性:3)
使用 '{' 和 '}' 在第 150 行分隔多行正则表达式, 'push @input_expression, $1 while $n =~ /' 附近。(严重性:1)
字符串*可能*需要在第 168 行进行插值, '$item, '$n'' 附近。(严重性:1)