}->();
f();
EXPECT
-Variable "$x" is not available at (eval 1) line 2.
+Variable "$x" is not available at (eval 1) line 1.
########
# pad.c
use warnings 'closure' ;
}
f()->();
EXPECT
-Variable "$x" is not available at (eval 1) line 2.
+Variable "$x" is not available at (eval 1) line 1.
########
use warnings 'closure' ;
{
}
f2();
EXPECT
-Variable "$x" is not available at (eval 1) line 2.
+Variable "$x" is not available at (eval 1) line 1.
########
use warnings 'closure' ;
for my $x (1,2,3) {
}
f();
EXPECT
-Variable "$x" is not available at (eval 4) line 2.
+Variable "$x" is not available at (eval 4) line 1.
########
# pad.c
no warnings 'closure' ;
}->();
f();
EXPECT
-Variable "$に" is not available at (eval 1) line 2.
+Variable "$に" is not available at (eval 1) line 1.
########
# pad.c
# see bugid 1754
}
f()->();
EXPECT
-Variable "$に" is not available at (eval 1) line 2.
+Variable "$に" is not available at (eval 1) line 1.
########
use warnings 'closure' ;
BEGIN { binmode STDERR, 'utf8'; }
}
f2();
EXPECT
-Variable "$に" is not available at (eval 1) line 2.
+Variable "$に" is not available at (eval 1) line 1.
########
use warnings 'closure' ;
BEGIN { binmode STDERR, 'utf8'; }
}
f();
EXPECT
-Variable "$に" is not available at (eval 4) line 2.
+Variable "$に" is not available at (eval 4) line 1.
########
# pad.c
use warnings 'closure' ;
}->();
f();
EXPECT
-Variable "$è" is not available at (eval 1) line 2.
+Variable "$è" is not available at (eval 1) line 1.
########
# pad.c
# see bugid 1754
}
f()->();
EXPECT
-Variable "$è" is not available at (eval 1) line 2.
+Variable "$è" is not available at (eval 1) line 1.
########
use warnings 'closure' ;
BEGIN { binmode STDERR, 'utf8'; }
}
f2();
EXPECT
-Variable "$è" is not available at (eval 1) line 2.
+Variable "$è" is not available at (eval 1) line 1.
########
use warnings 'closure' ;
BEGIN { binmode STDERR, 'utf8'; }
}
f();
EXPECT
-Variable "$è" is not available at (eval 4) line 2.
+Variable "$è" is not available at (eval 4) line 1.
########
require './test.pl';
}
-plan(tests => 126);
+plan(tests => 128);
eval 'pass();';
qr/Unbalanced string table/,
'Errors in finalize_optree do not leak string eval op tree';
}
+
+# [perl #114658] Line numbers at end of string eval
+for("{;", "{") {
+ eval $_; is $@ =~ s/eval \d+/eval 1/rag, <<'EOE',
+Missing right curly or square bracket at (eval 1) line 1, at end of line
+syntax error at (eval 1) line 1, at EOF
+EOE
+ qq'Right line number for eval "$_"';
+}
PERL_ARGS_ASSERT_INCLINE;
COPLINE_INC_WITH_HERELINES;
+ if (!PL_rsfp && !PL_parser->filtered && PL_lex_state == LEX_NORMAL
+ && s+1 == PL_bufend && *s == ';') {
+ /* fake newline in string eval */
+ CopLINE_dec(PL_curcop);
+ return;
+ }
if (*s++ != '#')
return;
while (SPACE_OR_TAB(*s))