1Check feature bundles. 2 3__END__ 4# Standard feature bundle 5use feature ":5.10"; 6say "Hello", "world"; 7EXPECT 8Helloworld 9######## 10# Standard feature bundle, no 5.11 11use feature ":5.10"; 12say utf8::native_to_unicode(ord uc chr utf8::unicode_to_native(233)); 13EXPECT 14233 15######## 16# Standard feature bundle, 5.11 17use feature ":5.11"; 18say utf8::native_to_unicode(ord uc chr utf8::unicode_to_native(233)); 19EXPECT 20201 21######## 22# Standard feature bundle, 5.11 23use feature ":5.11"; 24use utf8; 25say utf8::native_to_unicode(ord "\ué"); # this is utf8 26EXPECT 27201 28######## 29# more specific: 5.10.0 maps to 5.10 30use feature ":5.10.0"; 31say "Hello", "world"; 32EXPECT 33Helloworld 34######## 35# as does 5.10.1 36use feature ":5.10.1"; 37say "Hello", "world"; 38EXPECT 39Helloworld 40######## 41# as does 5.10.99 42use feature ":5.10.99"; 43say "Hello", "world"; 44EXPECT 45Helloworld 46######## 47# 5.9.5 also supported 48use feature ":5.9.5"; 49say "Hello", "world"; 50EXPECT 51Helloworld 52######## 53# 5.9 not supported 54use feature ":5.9"; 55EXPECT 56OPTIONS regex 57^Feature bundle "5.9" is not supported by Perl \d+\.\d+\.\d+ at - line \d+ 58######## 59# 5.9.4 not supported 60use feature ":5.9.4"; 61EXPECT 62OPTIONS regex 63^Feature bundle "5.9.4" is not supported by Perl \d+\.\d+\.\d+ at - line \d+ 64######## 65# 5.8.8 not supported 66use feature ":5.8.8"; 67EXPECT 68OPTIONS regex 69^Feature bundle "5.8.8" is not supported by Perl \d+\.\d+\.\d+ at - line \d+ 70######## 71# :default 72BEGIN { *say = *state = *given = sub { print "custom sub\n" }; } 73use feature ":default"; 74say "yes"; 75state my $foo; 76given a => chance; 77EXPECT 78custom sub 79custom sub 80custom sub 81######## 82# :default and $[ 83# SKIP ? not defined DynaLoader::boot_DynaLoader 84no feature; 85use feature ":default"; 86$[ = 1; 87print qw[a b c][2], "\n"; 88use feature ":5.16"; # should not disable anything; no feature ':all' does that 89print qw[a b c][2], "\n"; 90no feature ':all'; 91print qw[a b c][2], "\n"; 92use feature ":5.16"; 93print qw[a b c][2], "\n"; 94EXPECT 95Use of assignment to $[ is deprecated, and will be fatal in Perl 5.30 at - line 4. 96b 97b 98c 99c 100######## 101# "no feature" 102use feature ':5.16'; # turns array_base off 103no feature; # resets to :default, thus turns array_base on 104$[ = 1; 105print qw[a b c][2], "\n"; 106EXPECT 107Use of assignment to $[ is deprecated, and will be fatal in Perl 5.30 at - line 4. 108b 109######## 110# "no feature 'all" 111$[ = 1; 112print qw[a b c][2], "\n"; 113no feature ':all'; # turns array_base (and everything else) off 114$[ = 1; 115print qw[a b c][2], "\n"; 116EXPECT 117Use of assignment to $[ is deprecated, and will be fatal in Perl 5.30 at - line 2. 118Assigning non-zero to $[ is no longer possible at - line 5. 119b 120######## 121# NAME $^H accidentally enabling all features 122eval 'BEGIN { $^H |= 0x1c020000 } $_ = evalbytes 12345'; 123print $_||$@; 124EXPECT 125Number found where operator expected at (eval 1) line 1, near "evalbytes 12345" 126 (Do you need to predeclare evalbytes?) 127syntax error at (eval 1) line 1, near "evalbytes 12345" 128