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