1898184e3Ssthenuse warnings; 2898184e3Ssthenuse strict; 3898184e3Ssthen 4898184e3Ssthenuse Test::More tests => 14; 5898184e3Ssthen 6898184e3SsthenBEGIN { $^H |= 0x20000; } 7898184e3Ssthen 8898184e3Ssthenmy $t; 9898184e3Ssthen 10898184e3Ssthen$t = ""; 11898184e3Sstheneval q{ 12898184e3Ssthen use XS::APItest qw(looprest); 13898184e3Ssthen do { 14898184e3Ssthen $t .= "a"; 15898184e3Ssthen looprest 16898184e3Ssthen $t .= "b"; 17898184e3Ssthen last unless length($t) < 5; 18898184e3Ssthen $t .= "c"; 19898184e3Ssthen }; 20898184e3Ssthen $t .= "d"; 21898184e3Ssthen}; 22898184e3Ssthenis $@, ""; 23898184e3Ssthenis $t, "abcbcbd"; 24898184e3Ssthen 25898184e3Ssthen$t = ""; 26898184e3Sstheneval q{ 27898184e3Ssthen use XS::APItest qw(looprest); 28898184e3Ssthen $t .= "a"; 29898184e3Ssthen looprest 30898184e3Ssthen $t .= "b"; 31898184e3Ssthen last unless length($t) < 5; 32898184e3Ssthen $t .= "c"; 33898184e3Ssthen}; 34898184e3Ssthenis $@, ""; 35898184e3Ssthenis $t, "abcbcb"; 36898184e3Ssthen 37898184e3Ssthen$t = ""; 38898184e3Sstheneval q[ 39898184e3Ssthen use XS::APItest qw(looprest); 40898184e3Ssthen do { 41898184e3Ssthen $t .= "a"; 42898184e3Ssthen looprest 43898184e3Ssthen $t .= "b"; 44898184e3Ssthen last unless length($t) < 5; 45898184e3Ssthen $t .= "c"; 46898184e3Ssthen]; 47898184e3Ssthenisnt $@, ""; 48898184e3Ssthenis $t, ""; 49898184e3Ssthen 50898184e3Ssthen$t = ""; 51898184e3Sstheneval q[ 52898184e3Ssthen use XS::APItest qw(looprest); 53898184e3Ssthen $t .= "a"; 54898184e3Ssthen looprest 55898184e3Ssthen $t .= "b"; 56898184e3Ssthen last unless length($t) < 5; 57898184e3Ssthen $t .= "c"; 58898184e3Ssthen }; 59898184e3Ssthen]; 60898184e3Ssthenisnt $@, ""; 61898184e3Ssthenis $t, ""; 62898184e3Ssthen 63898184e3Ssthen$t = ""; 64898184e3Sstheneval q{ 65898184e3Ssthen use XS::APItest qw(looprest); 66898184e3Ssthen my $x = "a"; 67898184e3Ssthen $t .= $x; 68898184e3Ssthen do { 69*5759b3d2Safresh1 no warnings "shadow"; 70898184e3Ssthen $t .= $x; 71898184e3Ssthen my $x = "b"; 72898184e3Ssthen $t .= $x; 73898184e3Ssthen looprest 74898184e3Ssthen $t .= $x; 75898184e3Ssthen my $x = "c"; 76898184e3Ssthen $t .= $x; 77898184e3Ssthen last unless length($t) < 7; 78898184e3Ssthen $t .= $x; 79898184e3Ssthen my $x = "d"; 80898184e3Ssthen $t .= $x; 81898184e3Ssthen }; 82898184e3Ssthen $t .= $x; 83898184e3Ssthen}; 84898184e3Ssthenis $@, ""; 85898184e3Ssthenis $t, "aabbccdbca"; 86898184e3Ssthen 87898184e3Ssthen$t = ""; 88898184e3Sstheneval q{ 89898184e3Ssthen use XS::APItest qw(looprest); 90898184e3Ssthen do { 91898184e3Ssthen { $t .= "a"; } 92898184e3Ssthen looprest 93898184e3Ssthen { $t .= "b"; } 94898184e3Ssthen last unless length($t) < 5; 95898184e3Ssthen { $t .= "c"; } 96898184e3Ssthen }; 97898184e3Ssthen $t .= "d"; 98898184e3Ssthen}; 99898184e3Ssthenis $@, ""; 100898184e3Ssthenis $t, "abcbcbd"; 101898184e3Ssthen 102898184e3Ssthen$t = ""; 103898184e3Sstheneval q{ 104898184e3Ssthen use XS::APItest qw(looprest); 105898184e3Ssthen { $t .= "a"; } 106898184e3Ssthen looprest 107898184e3Ssthen { $t .= "b"; } 108898184e3Ssthen last unless length($t) < 5; 109898184e3Ssthen { $t .= "c"; } 110898184e3Ssthen}; 111898184e3Ssthenis $@, ""; 112898184e3Ssthenis $t, "abcbcb"; 113898184e3Ssthen 114898184e3Ssthen1; 115