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