Commit | Line | Data |
---|---|---|
42e73e1c | 1 | =head1 NAME |
2 | ||
3 | perlexperiment - A listing of experimental features in Perl | |
4 | ||
5 | =head1 DESCRIPTION | |
6 | ||
7 | This document lists the current and past experimental features in the perl | |
d1558b3e | 8 | core. Although all of these are documented with their appropriate topics, |
42e73e1c | 9 | this succinct listing gives you an overview and basic facts about their |
10 | status. | |
11 | ||
fe8d2675 | 12 | So far we've merely tried to find and list the experimental features and infer |
d1558b3e | 13 | their inception, versions, etc. There's a lot of speculation here. |
42e73e1c | 14 | |
15 | =head2 Current experiments | |
16 | ||
17 | =over 8 | |
18 | ||
42e73e1c | 19 | =item C<our> can now have an experimental optional attribute C<unique> |
20 | ||
21 | Introduced in Perl 5.8.0 | |
22 | ||
d1558b3e FC |
23 | Deprecated in Perl 5.10.0 |
24 | ||
02ba9cac RS |
25 | The ticket for this feature is |
26 | L<[perl #119313]|https://rt.perl.org/rt3/Ticket/Display.html?id=119313>. | |
27 | ||
51c34fa4 RS |
28 | =item Smart match (C<~~>) |
29 | ||
30 | Introduced in Perl 5.10.0 | |
31 | ||
32 | Modified in Perl 5.10.1, 5.12.0 | |
33 | ||
34 | Using this feature triggers warnings in the category | |
35 | C<experimental::smartmatch>. | |
36 | ||
c77be11b RS |
37 | The ticket for this feature is |
38 | L<[perl #119317]|https://rt.perl.org/rt3/Ticket/Display.html?id=119317>. | |
39 | ||
51c34fa4 RS |
40 | =item Lexical C<$_> |
41 | ||
42 | Introduced in Perl 5.10.0 | |
43 | ||
44 | Using this feature triggers warnings in the category | |
45 | C<experimental::lexical_topic>. | |
46 | ||
a291f3c5 RS |
47 | The ticket for this feature is |
48 | L<[perl #119315]|https://rt.perl.org/rt3/Ticket/Display.html?id=119315>. | |
49 | ||
51c34fa4 RS |
50 | =item Pluggable keywords |
51 | ||
52 | See L<perlapi/PL_keyword_plugin> for the mechanism. | |
53 | ||
54 | Introduced in: Perl 5.11.2 | |
55 | ||
56 | =item Array and hash container functions accept references | |
57 | ||
58 | Introduced in Perl 5.14.0 | |
59 | ||
3ae5c8a2 RS |
60 | The ticket for this feature is |
61 | L<[perl #119437]|https://rt.perl.org/rt3/Ticket/Display.html?id=119437>. | |
62 | ||
51c34fa4 RS |
63 | =item Lexical subroutines |
64 | ||
65 | Introduced in: Perl 5.18 | |
66 | ||
67 | See also: L<perlsub/Lexical Subroutines> | |
68 | ||
69 | Using this feature triggers warnings in the category | |
70 | C<experimental::lexical_subs>. | |
71 | ||
72 | =item Regular Expression Set Operations | |
73 | ||
74 | Introduced in: Perl 5.18 | |
75 | ||
ca888027 RS |
76 | The ticket for this feature is |
77 | L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>. | |
78 | ||
51c34fa4 RS |
79 | See also: L<perlrecharclass/Extended Bracketed Character Classes> |
80 | ||
81 | Using this feature triggers warnings in the category | |
82 | C<experimental::regex_sets>. | |
83 | ||
3602d7b6 RS |
84 | =item C<\s> in regexp matches vertical tab |
85 | ||
86 | Introduced in Perl 5.18 | |
51c34fa4 | 87 | |
706c19b7 | 88 | =item The <:win32> IO pseudolayer |
42e73e1c | 89 | |
a532d4a5 RS |
90 | The ticket for this feature is |
91 | L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>. | |
92 | ||
42e73e1c | 93 | See also L<perlrun> |
94 | ||
42e73e1c | 95 | =item There is an C<installhtml> target in the Makefile. |
afb63838 RS |
96 | |
97 | The ticket for this feature is | |
98 | L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>. | |
42e73e1c | 99 | |
100 | =item Unicode in Perl on EBCDIC | |
101 | ||
42e73e1c | 102 | See also: L<perlre/"Special Backtracking Control Verbs"> |
103 | ||
42e73e1c | 104 | =back |
105 | ||
106 | =head2 Accepted features | |
107 | ||
108 | These features were so wildly successful and played so well with others that | |
109 | we decided to remove their experimental status and admit them as full, stable | |
51c34fa4 | 110 | features in the world of Perl, lavishing all the benefits and luxuries thereof. |
42e73e1c | 111 | They are also awarded +5 Stability and +3 Charisma. |
112 | ||
113 | =over 8 | |
114 | ||
51c34fa4 | 115 | =item 64-bit support |
42e73e1c | 116 | |
51c34fa4 | 117 | Introduced in Perl 5.005 |
fe8d2675 | 118 | |
51c34fa4 | 119 | =item die accepts a reference |
fe8d2675 | 120 | |
51c34fa4 | 121 | Introduced in Perl 5.005 |
fe8d2675 AT |
122 | |
123 | =item DB module | |
124 | ||
125 | Introduced in Perl 5.6.0 | |
126 | ||
127 | See also L<perldebug>, L<perldebtut> | |
128 | ||
129 | =item Weak references | |
130 | ||
131 | Introduced in Perl 5.6.0 | |
132 | ||
133 | =item Internal file glob | |
134 | ||
135 | Introduced in Perl 5.6.0 | |
136 | ||
51c34fa4 | 137 | =item fork() emulation |
fe8d2675 | 138 | |
51c34fa4 | 139 | Introduced in Perl 5.6.1 |
fe8d2675 | 140 | |
51c34fa4 | 141 | See also L<perlfork> |
fe8d2675 | 142 | |
3a0e7915 RS |
143 | =item -Dusemultiplicity -Duseithreads |
144 | ||
145 | Introduced in Perl 5.6.0 | |
146 | ||
147 | Accepted in Perl 5.8.0 | |
148 | ||
36d2f798 RS |
149 | =item Support for long doubles |
150 | ||
151 | Introduced in Perl 5.6.0 | |
152 | ||
153 | Accepted in Perl 5.8.1 | |
154 | ||
51c34fa4 RS |
155 | =item The C<\N> regex character class |
156 | ||
157 | The C<\N> character class, not to be confused with the named character | |
158 | sequence C<\N{NAME}>, denotes any non-newline character in a regular | |
159 | expression. | |
160 | ||
3cb3bd66 RS |
161 | Introduced in Perl 5.12 |
162 | ||
163 | Exact version of acceptance unclear, but no later than Perl 5.18. | |
fe8d2675 | 164 | |
83f32aba RS |
165 | =item C<(?{code})> and C<(??{ code })> |
166 | ||
167 | Introduced in Perl 5.6.0 | |
168 | ||
169 | Accepted in Perl 5.20.0 | |
170 | ||
171 | See also L<perlre> | |
172 | ||
e48e70eb RS |
173 | =item Linux abstract Unix domain sockets |
174 | ||
175 | Introduced in Perl 5.9.2 | |
176 | ||
177 | Accepted before Perl 5.20.0. The Socket library is now primarily maintained | |
178 | on CPAN, rather than in the perl core. | |
179 | ||
180 | See also L<Socket> | |
181 | ||
af7c9f88 RS |
182 | =item Lvalue subroutines |
183 | ||
184 | Introduced in Perl 5.6.0 | |
185 | ||
186 | Accepted in Perl 5.20.0 | |
187 | ||
188 | See also L<perlsub> | |
189 | ||
b387afbc RS |
190 | =item Backtracking control verbs |
191 | ||
192 | C<(*ACCEPT)> | |
193 | ||
194 | Introduced in: Perl 5.10 | |
195 | ||
196 | Accepted in Perl 5.20.0 | |
197 | ||
8a7bc862 RS |
198 | =item The <:pop> IO pseudolayer |
199 | ||
200 | See also L<perlrun> | |
201 | ||
202 | Accepted in Perl 5.20.0 | |
203 | ||
42e73e1c | 204 | =back |
205 | ||
206 | =head2 Removed features | |
207 | ||
208 | These features are no longer considered experimental and their functionality | |
209 | has disappeared. It's your own fault if you wrote production programs using | |
210 | these features after we explicitly told you not to (see L<perlpolicy>). | |
211 | ||
212 | =over 8 | |
213 | ||
51c34fa4 | 214 | =item 5.005-style threading |
42e73e1c | 215 | |
51c34fa4 | 216 | Introduced in Perl 5.005 |
42e73e1c | 217 | |
51c34fa4 | 218 | Removed in Perl 5.10 |
42e73e1c | 219 | |
51c34fa4 | 220 | =item perlcc |
fe8d2675 | 221 | |
51c34fa4 | 222 | Introduced in Perl 5.005 |
fe8d2675 | 223 | |
51c34fa4 | 224 | Moved from Perl 5.9.0 to CPAN |
fe8d2675 | 225 | |
51c34fa4 | 226 | =item The pseudo-hash data type |
fe8d2675 | 227 | |
51c34fa4 | 228 | Introduced in Perl 5.6.0 |
fe8d2675 | 229 | |
51c34fa4 | 230 | Removed in Perl 5.9.0 |
fe8d2675 AT |
231 | |
232 | =item GetOpt::Long Options can now take multiple values at once (experimental) | |
233 | ||
234 | C<Getopt::Long> upgraded to version 2.35 | |
235 | ||
236 | Removed in Perl 5.8.8 | |
237 | ||
51c34fa4 | 238 | =item Assertions |
fe8d2675 | 239 | |
51c34fa4 | 240 | The C<-A> command line switch |
fe8d2675 | 241 | |
51c34fa4 | 242 | Introduced in Perl 5.9.0 |
fe8d2675 | 243 | |
51c34fa4 | 244 | Removed in Perl 5.9.5 |
fe8d2675 | 245 | |
51c34fa4 | 246 | =item Test::Harness::Straps |
fe8d2675 | 247 | |
51c34fa4 | 248 | Moved from Perl 5.10.1 to CPAN |
fe8d2675 | 249 | |
51c34fa4 | 250 | =item C<legacy> |
fe8d2675 | 251 | |
51c34fa4 | 252 | The experimental C<legacy> pragma was swallowed by the C<feature> pragma. |
fe8d2675 | 253 | |
51c34fa4 RS |
254 | Introduced in: 5.11.2 |
255 | ||
256 | Removed in: 5.11.3 | |
fe8d2675 | 257 | |
42e73e1c | 258 | =back |
259 | ||
260 | =head1 AUTHORS | |
261 | ||
262 | brian d foy C<< <brian.d.foy@gmail.com> >> | |
263 | ||
fe8d2675 AT |
264 | SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >> |
265 | ||
42e73e1c | 266 | =head1 COPYRIGHT |
267 | ||
268 | Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >> | |
269 | ||
270 | =head1 LICENSE | |
271 | ||
272 | You can use and redistribute this document under the same terms as Perl | |
273 | itself. | |
274 | ||
275 | =cut |