summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/t/cmd/while.t
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/t/cmd/while.t')
-rwxr-xr-xcontrib/perl5/t/cmd/while.t55
1 files changed, 52 insertions, 3 deletions
diff --git a/contrib/perl5/t/cmd/while.t b/contrib/perl5/t/cmd/while.t
index 392c137..ecc15ed 100755
--- a/contrib/perl5/t/cmd/while.t
+++ b/contrib/perl5/t/cmd/while.t
@@ -1,8 +1,6 @@
#!./perl
-# $RCSfile: while.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:15 $
-
-print "1..15\n";
+print "1..22\n";
open (tmp,'>Cmd_while.tmp') || die "Can't create Cmd_while.tmp.";
print tmp "tvi925\n";
@@ -128,3 +126,54 @@ while (1) {
$i++;
print "not " unless $` . $& . $' eq "abc";
print "ok $i\n";
+
+# check that scope cleanup happens right when there's a continue block
+{
+ my $var = 16;
+ while (my $i = ++$var) {
+ next if $i == 17;
+ last if $i > 17;
+ my $i = 0;
+ }
+ continue {
+ print "ok ", $var-1, "\nok $i\n";
+ }
+}
+
+{
+ local $l = 18;
+ {
+ local $l = 0
+ }
+ continue {
+ print "ok $l\n"
+ }
+}
+
+{
+ local $l = 19;
+ my $x = 0;
+ while (!$x++) {
+ local $l = 0
+ }
+ continue {
+ print "ok $l\n"
+ }
+}
+
+$i = 20;
+{
+ while (1) {
+ my $x;
+ print $x if defined $x;
+ $x = "not ";
+ print "ok $i\n"; ++$i;
+ if ($i == 21) {
+ next;
+ }
+ last;
+ }
+ continue {
+ print "ok $i\n"; ++$i;
+ }
+}
OpenPOWER on IntegriCloud