Что мне нужно изменить здесь, чтобы это работало?
my $str = "start middle end"; my $regex = / start ( .+ ) end /; $str.=subst( / <$regex> /, { $0 } ); # dies: Use of Nil in string context say "[$str]";
Проблема заключается в том, что интерполяция регулярного выражения в другое регулярное выражение с помощью синтаксиса <$regex> не приведет к установке результата в переменной соответствия. Есть два способа обойти это:
<$regex>
$str .= subst($regex, { $0 });
$str .= subst( / <foo=$regex> /, { $<foo>[0] });
Оба из них должны работать нормально.