p4raw-link: @10394 on //depot/maint-5.6/perl:
f8a08f7b8bd67b287f13d07e110e93e62aebd509
p4raw-id: //depot/perl@10395
p4raw-integrated: from //depot/maint-5.6/perl@10393 'copy in'
t/pragma/warn/universal (@5902..) 'merge in' perly.c (@8159..)
vms/perly_c.vms (@8169..) t/op/misc.t (@8636..) perly.y
(@9292..)
#if defined(YYDEBUG) && defined(DEBUGGING)
yydebug = (DEBUG_p_TEST);
#endif
- PL_expect = XSTATE;
+ PL_expect = XSTATE; yyval.ival = block_start(TRUE);
}
break;
case 2:
#line 135 "perly.y"
-{ newPROG(yyvsp[0].opval); }
+{ newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
break;
case 3:
#line 139 "perly.y"
#if defined(YYDEBUG) && defined(DEBUGGING)
yydebug = (DEBUG_p_TEST);
#endif
- PL_expect = XSTATE;
+ PL_expect = XSTATE; $$ = block_start(TRUE);
}
/*CONTINUED*/ lineseq
- { newPROG($2); }
+ { newPROG(block_end($1,$2)); }
;
block : '{' remember lineseq '}'
EXPECT
aba\ba\b
########
+# lexicals declared after the myeval() definition should not be visible
+# within it
+sub myeval { eval $_[0] }
+my $foo = "ok 2\n";
+myeval('sub foo { local $foo = "ok 1\n"; print $foo; }');
+die $@ if $@;
+foo();
+print $foo;
+EXPECT
+ok 1
+ok 2
+########
# This test is here instead of pragma/locale.t because
# the bug depends on in the internal state of the locale
# settings and pragma/locale messes up that state pretty badly.
UNIVERSAL::isa $a, Jim ;
EXPECT
Can't locate package Joe for @main::ISA at - line 5.
-Can't locate package Joe for @main::ISA.
-Can't locate package Joe for @main::ISA.
#if defined(YYDEBUG) && defined(DEBUGGING)
yydebug = (DEBUG_p_TEST);
#endif
- PL_expect = XSTATE;
+ PL_expect = XSTATE; yyval.ival = block_start(TRUE);
}
break;
case 2:
#line 135 "perly.y"
-{ newPROG(yyvsp[0].opval); }
+{ newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
break;
case 3:
#line 139 "perly.y"