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