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