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 | ||
7896dde7 | 19 | =item Smart match (C<~~>) |
51c34fa4 RS |
20 | |
21 | Introduced in Perl 5.10.0 | |
22 | ||
7896dde7 | 23 | Modified in Perl 5.10.1, 5.12.0 |
51c34fa4 RS |
24 | |
25 | Using this feature triggers warnings in the category | |
26 | C<experimental::smartmatch>. | |
27 | ||
c77be11b RS |
28 | The ticket for this feature is |
29 | L<[perl #119317]|https://rt.perl.org/rt3/Ticket/Display.html?id=119317>. | |
30 | ||
51c34fa4 RS |
31 | =item Pluggable keywords |
32 | ||
57b503da RS |
33 | The ticket for this feature is |
34 | L<[perl #119455]|https://rt.perl.org/rt3/Ticket/Display.html?id=119455>. | |
35 | ||
51c34fa4 RS |
36 | See L<perlapi/PL_keyword_plugin> for the mechanism. |
37 | ||
aec1aee9 | 38 | Introduced in Perl 5.11.2 |
51c34fa4 | 39 | |
51c34fa4 RS |
40 | =item Regular Expression Set Operations |
41 | ||
aec1aee9 | 42 | Introduced in Perl 5.18 |
51c34fa4 | 43 | |
ca888027 RS |
44 | The ticket for this feature is |
45 | L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>. | |
46 | ||
51c34fa4 RS |
47 | See also: L<perlrecharclass/Extended Bracketed Character Classes> |
48 | ||
49 | Using this feature triggers warnings in the category | |
50 | C<experimental::regex_sets>. | |
51 | ||
afdb3b14 RS |
52 | =item Subroutine signatures |
53 | ||
54 | Introduced in Perl 5.20.0 | |
55 | ||
56 | Using this feature triggers warnings in the category | |
57 | C<experimental::signatures>. | |
58 | ||
59 | The ticket for this feature is | |
60 | L<[perl #121481]|https://rt.perl.org/Ticket/Display.html?id=121481>. | |
61 | ||
baabe3fb | 62 | =item Aliasing via reference |
82848c10 FC |
63 | |
64 | Introduced in Perl 5.22.0 | |
65 | ||
66 | Using this feature triggers warnings in the category | |
baabe3fb | 67 | C<experimental::refaliasing>. |
82848c10 FC |
68 | |
69 | The ticket for this feature is | |
70 | L<[perl #122947]|https://rt.perl.org/rt3/Ticket/Display.html?id=122947>. | |
71 | ||
72 | See also: L<perlref/Assigning to References> | |
73 | ||
99734069 FC |
74 | =item The "const" attribute |
75 | ||
76 | Introduced in Perl 5.22.0 | |
77 | ||
78 | Using this feature triggers warnings in the category | |
79 | C<experimental::const_attr>. | |
80 | ||
81 | The ticket for this feature is | |
1e50fc51 | 82 | L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>. |
99734069 FC |
83 | |
84 | See also: L<perlsub/Constant Functions> | |
85 | ||
1eac213a KW |
86 | =item use re 'strict'; |
87 | ||
88 | Introduced in Perl 5.22.0 | |
89 | ||
90 | Using this feature triggers warnings in the category | |
91 | C<experimental::re_strict>. | |
92 | ||
93 | See L<re/'strict' mode> | |
94 | ||
706c19b7 | 95 | =item The <:win32> IO pseudolayer |
42e73e1c | 96 | |
a532d4a5 RS |
97 | The ticket for this feature is |
98 | L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>. | |
99 | ||
42e73e1c | 100 | See also L<perlrun> |
101 | ||
5c703779 FC |
102 | =item Declaring a reference to a variable |
103 | ||
104 | Introduced in Perl 5.26.0 | |
105 | ||
106 | Using this feature triggers warnings in the category | |
107 | C<experimental::declared_refs>. | |
108 | ||
109 | The ticket for this feature is | |
110 | L<[perl #128654]|https://rt.perl.org/rt3/Ticket/Display.html?id=128654>. | |
111 | ||
112 | See also: L<perlref/Declaring a Reference to a Variable> | |
113 | ||
42e73e1c | 114 | =item There is an C<installhtml> target in the Makefile. |
afb63838 RS |
115 | |
116 | The ticket for this feature is | |
117 | L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>. | |
42e73e1c | 118 | |
119 | =item Unicode in Perl on EBCDIC | |
120 | ||
dfc19b6b KW |
121 | =item Script runs |
122 | ||
123 | Introduced in Perl 5.28.0 | |
124 | ||
125 | Using this feature triggers warnings in the category | |
126 | C<experimental::script_run>. | |
127 | ||
128 | See also: L<perlre/Script Runs> | |
129 | ||
e7206367 KW |
130 | =item Alpabetic assertions |
131 | ||
132 | Introduced in Perl 5.28.0 | |
133 | ||
134 | Using this feature triggers warnings in the category | |
135 | C<experimental::alpha_assertions>. | |
136 | ||
137 | See also: L<perlre/Extended Patterns>. | |
dfc19b6b | 138 | |
42e73e1c | 139 | =back |
140 | ||
141 | =head2 Accepted features | |
142 | ||
143 | These features were so wildly successful and played so well with others that | |
144 | we decided to remove their experimental status and admit them as full, stable | |
51c34fa4 | 145 | features in the world of Perl, lavishing all the benefits and luxuries thereof. |
42e73e1c | 146 | They are also awarded +5 Stability and +3 Charisma. |
147 | ||
148 | =over 8 | |
149 | ||
51c34fa4 | 150 | =item 64-bit support |
42e73e1c | 151 | |
51c34fa4 | 152 | Introduced in Perl 5.005 |
fe8d2675 | 153 | |
51c34fa4 | 154 | =item die accepts a reference |
fe8d2675 | 155 | |
51c34fa4 | 156 | Introduced in Perl 5.005 |
fe8d2675 AT |
157 | |
158 | =item DB module | |
159 | ||
160 | Introduced in Perl 5.6.0 | |
161 | ||
162 | See also L<perldebug>, L<perldebtut> | |
163 | ||
164 | =item Weak references | |
165 | ||
166 | Introduced in Perl 5.6.0 | |
167 | ||
168 | =item Internal file glob | |
169 | ||
170 | Introduced in Perl 5.6.0 | |
171 | ||
51c34fa4 | 172 | =item fork() emulation |
fe8d2675 | 173 | |
51c34fa4 | 174 | Introduced in Perl 5.6.1 |
fe8d2675 | 175 | |
51c34fa4 | 176 | See also L<perlfork> |
fe8d2675 | 177 | |
3a0e7915 RS |
178 | =item -Dusemultiplicity -Duseithreads |
179 | ||
180 | Introduced in Perl 5.6.0 | |
181 | ||
182 | Accepted in Perl 5.8.0 | |
183 | ||
36d2f798 RS |
184 | =item Support for long doubles |
185 | ||
186 | Introduced in Perl 5.6.0 | |
187 | ||
188 | Accepted in Perl 5.8.1 | |
189 | ||
51c34fa4 RS |
190 | =item The C<\N> regex character class |
191 | ||
192 | The C<\N> character class, not to be confused with the named character | |
193 | sequence C<\N{NAME}>, denotes any non-newline character in a regular | |
194 | expression. | |
195 | ||
3cb3bd66 RS |
196 | Introduced in Perl 5.12 |
197 | ||
198 | Exact version of acceptance unclear, but no later than Perl 5.18. | |
fe8d2675 | 199 | |
83f32aba RS |
200 | =item C<(?{code})> and C<(??{ code })> |
201 | ||
202 | Introduced in Perl 5.6.0 | |
203 | ||
204 | Accepted in Perl 5.20.0 | |
205 | ||
206 | See also L<perlre> | |
207 | ||
e48e70eb RS |
208 | =item Linux abstract Unix domain sockets |
209 | ||
210 | Introduced in Perl 5.9.2 | |
211 | ||
212 | Accepted before Perl 5.20.0. The Socket library is now primarily maintained | |
213 | on CPAN, rather than in the perl core. | |
214 | ||
215 | See also L<Socket> | |
216 | ||
af7c9f88 RS |
217 | =item Lvalue subroutines |
218 | ||
219 | Introduced in Perl 5.6.0 | |
220 | ||
221 | Accepted in Perl 5.20.0 | |
222 | ||
223 | See also L<perlsub> | |
224 | ||
b387afbc RS |
225 | =item Backtracking control verbs |
226 | ||
227 | C<(*ACCEPT)> | |
228 | ||
aec1aee9 | 229 | Introduced in Perl 5.10 |
b387afbc RS |
230 | |
231 | Accepted in Perl 5.20.0 | |
232 | ||
8a7bc862 RS |
233 | =item The <:pop> IO pseudolayer |
234 | ||
235 | See also L<perlrun> | |
236 | ||
237 | Accepted in Perl 5.20.0 | |
238 | ||
779cf272 KW |
239 | =item C<\s> in regexp matches vertical tab |
240 | ||
241 | Accepted in Perl 5.22.0 | |
242 | ||
2ad792cd AC |
243 | =item Postfix dereference syntax |
244 | ||
245 | Introduced in Perl 5.20.0 | |
246 | ||
247 | Accepted in Perl 5.24.0 | |
248 | ||
06c4bad0 FC |
249 | =item Lexical subroutines |
250 | ||
251 | Introduced in Perl 5.18.0 | |
252 | ||
253 | Accepted in Perl 5.26.0 | |
254 | ||
193789ac FC |
255 | =item String- and number-specific bitwise operators |
256 | ||
257 | Introduced in Perl 5.22.0 | |
258 | ||
259 | Accepted in Perl 5.28.0 | |
260 | ||
42e73e1c | 261 | =back |
262 | ||
263 | =head2 Removed features | |
264 | ||
265 | These features are no longer considered experimental and their functionality | |
266 | has disappeared. It's your own fault if you wrote production programs using | |
267 | these features after we explicitly told you not to (see L<perlpolicy>). | |
268 | ||
269 | =over 8 | |
270 | ||
51c34fa4 | 271 | =item 5.005-style threading |
42e73e1c | 272 | |
51c34fa4 | 273 | Introduced in Perl 5.005 |
42e73e1c | 274 | |
51c34fa4 | 275 | Removed in Perl 5.10 |
42e73e1c | 276 | |
51c34fa4 | 277 | =item perlcc |
fe8d2675 | 278 | |
51c34fa4 | 279 | Introduced in Perl 5.005 |
fe8d2675 | 280 | |
51c34fa4 | 281 | Moved from Perl 5.9.0 to CPAN |
fe8d2675 | 282 | |
51c34fa4 | 283 | =item The pseudo-hash data type |
fe8d2675 | 284 | |
51c34fa4 | 285 | Introduced in Perl 5.6.0 |
fe8d2675 | 286 | |
51c34fa4 | 287 | Removed in Perl 5.9.0 |
fe8d2675 AT |
288 | |
289 | =item GetOpt::Long Options can now take multiple values at once (experimental) | |
290 | ||
291 | C<Getopt::Long> upgraded to version 2.35 | |
292 | ||
293 | Removed in Perl 5.8.8 | |
294 | ||
51c34fa4 | 295 | =item Assertions |
fe8d2675 | 296 | |
51c34fa4 | 297 | The C<-A> command line switch |
fe8d2675 | 298 | |
51c34fa4 | 299 | Introduced in Perl 5.9.0 |
fe8d2675 | 300 | |
51c34fa4 | 301 | Removed in Perl 5.9.5 |
fe8d2675 | 302 | |
51c34fa4 | 303 | =item Test::Harness::Straps |
fe8d2675 | 304 | |
51c34fa4 | 305 | Moved from Perl 5.10.1 to CPAN |
fe8d2675 | 306 | |
51c34fa4 | 307 | =item C<legacy> |
fe8d2675 | 308 | |
51c34fa4 | 309 | The experimental C<legacy> pragma was swallowed by the C<feature> pragma. |
fe8d2675 | 310 | |
aec1aee9 | 311 | Introduced in Perl 5.11.2 |
51c34fa4 | 312 | |
aec1aee9 | 313 | Removed in Perl 5.11.3 |
fe8d2675 | 314 | |
f8b823eb DIM |
315 | =item Lexical C<$_> |
316 | ||
74a78c10 AC |
317 | Using this feature triggered warnings in the category |
318 | C<experimental::lexical_topic>. | |
319 | ||
f8b823eb DIM |
320 | Introduced in Perl 5.10.0 |
321 | ||
322 | Removed in Perl 5.24.0 | |
323 | ||
324 | =item Array and hash container functions accept references | |
325 | ||
74a78c10 AC |
326 | Using this feature triggered warnings in the category |
327 | C<experimental::autoderef>. | |
328 | ||
f8b823eb DIM |
329 | Superseded by L</Postfix dereference syntax>. |
330 | ||
331 | Introduced in Perl 5.14.0 | |
332 | ||
333 | Removed in Perl 5.24.0 | |
334 | ||
85cd139f DIM |
335 | =item C<our> can have an experimental optional attribute C<unique> |
336 | ||
337 | Introduced in Perl 5.8.0 | |
338 | ||
339 | Deprecated in Perl 5.10.0 | |
340 | ||
341 | Removed in Perl 5.28.0 | |
342 | ||
42e73e1c | 343 | =back |
344 | ||
2b0121e1 AS |
345 | =head1 SEE ALSO |
346 | ||
347 | For a complete list of features check L<feature>. | |
348 | ||
42e73e1c | 349 | =head1 AUTHORS |
350 | ||
351 | brian d foy C<< <brian.d.foy@gmail.com> >> | |
352 | ||
fe8d2675 AT |
353 | SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >> |
354 | ||
42e73e1c | 355 | =head1 COPYRIGHT |
356 | ||
357 | Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >> | |
358 | ||
359 | =head1 LICENSE | |
360 | ||
361 | You can use and redistribute this document under the same terms as Perl | |
362 | itself. | |
363 | ||
364 | =cut |