is $loop, 21, 'yield() exited while';
is_deeply \@res, [ 20, 23 ], 'yield() in while () { ... }';
-{
+SKIP: {
+ skip '"eval { $str =~ s/./die q[foo]/e }" breaks havoc on perl 5.8 and below'
+ => 1 if "$]" < 5.010;
my $s = 'a';
local $@;
eval {
if "$]" < 5.010;
@res = eval <<'TESTCASE';
+ BEGIN {
+ if ("$]" >= 5.017_011) {
+ require warnings;
+ warnings->unimport('experimental::smartmatch');
+ }
+ }
use feature 'switch';
(24, do {
given (25) {
# end of the enclosing given block.
@res = ();
eval <<'TESTCASE';
+ BEGIN {
+ if ("$]" >= 5.017_011) {
+ require warnings;
+ warnings->unimport('experimental::smartmatch');
+ }
+ }
use feature 'switch';
@res = (28, do {
given (29) {
# But calling yield() in when() in for() sends us at the next iteration.
@res = ();
eval <<'TESTCASE';
+ BEGIN {
+ if ("$]" >= 5.017_011) {
+ require warnings;
+ warnings->unimport('experimental::smartmatch');
+ }
+ }
use feature 'switch';
@res = (31, do {
for (32, 33) {