要使其正常运行,我必须在此处进行哪些更改?
my $str = "start middle end";
my $regex = / start ( .+ ) end /;
$str.=subst( / <$regex> /, { $0 } ); # dies: Use of Nil in string context
say "[$str]";
答案 0 :(得分:9)
问题在于通过<$regex>
语法将一个正则表达式插入另一个正则表达式不会在match变量中安装结果。解决此问题的方法有两种:
$str .= subst($regex, { $0 });
$str .= subst( / <foo=$regex> /, { $<foo>[0] });
这两种方法都可以正常工作。