xref: /openbsd/gnu/usr.bin/perl/t/lib/feature/bundle (revision 274d7c50)
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