#!./perl
-print "1..40\n";
+print "1..41\n";
eval 'print "ok 1\n";';
$x++;
do_eval1('eval q[print "ok $x\n"]');
$x++;
-do_eval1('sub { eval q[print "ok $x\n"] }->()');
+do_eval1('sub { print "# $x\n"; eval q[print "ok $x\n"] }->()');
$x++;
# calls from within eval'' should clone outer lexicals
$x++;
do_eval2('eval q[print "ok $x\n"]');
$x++;
-do_eval2('sub { eval q[print "ok $x\n"] }->()');
+do_eval2('sub { print "# $x\n"; eval q[print "ok $x\n"] }->()');
$x++;
EOT
print "ok $x\n";
$x++;
}
+
+# Check that eval catches bad goto calls
+# (BUG ID 20010305.003)
+{
+ eval {
+ eval { goto foo; };
+ print ($@ ? "ok 41\n" : "not ok 41\n");
+ last;
+ foreach my $i (1) {
+ foo: print "not ok 41\n";
+ print "# jumped into foreach\n";
+ }
+ };
+ print "not ok 41\n" if $@;
+}