# "This IS structured code. It's just randomly structured."
-print "1..19\n";
+print "1..22\n";
while ($?) {
$foo = 1;
print "#2\t:$foo: == 4\n";
if ($foo == 4) {print "ok 2\n";} else {print "not ok 2\n";}
-$PERL = ($^O eq 'MSWin32') ? '.\perl' : './perl';
+$PERL = ($^O eq 'MSWin32') ? '.\perl' : ($^O eq 'MacOS') ? $^X : ($^O eq 'NetWare') ? 'perl' : './perl';
$CMD = qq[$PERL -e "goto foo;" 2>&1 ];
$x = `$CMD`;
goto FORL2;
}
+# Does goto work correctly within a try block?
+# (BUG ID 20000313.004)
+
+my $ok = 0;
+eval {
+ my $variable = 1;
+ goto LABEL20;
+ LABEL20: $ok = 1 if $variable;
+};
+print ($ok&&!$@ ? "ok 20\n" : "not ok 20\n");
+
+# And within an eval-string?
+
+
+$ok = 0;
+eval q{
+ my $variable = 1;
+ goto LABEL21;
+ LABEL21: $ok = 1 if $variable;
+};
+print ($ok&&!$@ ? "ok 21\n" : "not ok 21\n");
+
+
+# Test that goto works in nested eval-string
+$ok = 0;
+{eval q{
+ eval q{
+ goto LABEL22;
+ };
+ $ok = 0;
+ last;
+
+ LABEL22: $ok = 1;
+};
+$ok = 0 if $@;
+}
+print ($ok ? "ok 22\n" : "not ok 22\n");
+
exit;
bypass: