require Config; import Config;
}
-print "1..82\n";
+print "1..83\n";
$x = 'foo';
$_ = "x";
print ($@ =~ /Bad evalled substitution/ ? "ok 81\n" : "not ok 81\n");
eval q% ($_ = "x") =~ s/(.)/"$1 "/e %;
print +($_ eq "x " and !length $@) ? "ok 82\n" : "not ok 82\n# \$_ eq $_, $@\n";
+$x = $x = 'interp';
+eval q% ($_ = "x") =~ s/x(($x)*)/"$1"/e %;
+print +($_ eq '' and !length $@) ? "ok 83\n" : "not ok 83\n# \$_ eq $_, $@\n";
PL_lex_state = LEX_INTERPCONCAT;
return ')';
}
- if (PL_lex_inwhat == OP_SUBST && PL_lex_repl && SvCOMPILED(PL_lex_repl)) {
+ if (PL_lex_inwhat == OP_SUBST && PL_linestr == PL_lex_repl
+ && SvCOMPILED(PL_lex_repl))
+ {
if (PL_bufptr != PL_bufend)
croak("Bad evalled substitution pattern");
PL_lex_repl = Nullsv;