This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #126593] make sure utf8_heavy.pl doesn't depend on itself
[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 Lexical subroutines
50
aec1aee9 51Introduced in Perl 5.18
51c34fa4
RS
52
53See also: L<perlsub/Lexical Subroutines>
54
55Using this feature triggers warnings in the category
56C<experimental::lexical_subs>.
57
bd5908dd
RS
58The ticket for this feature is
59L<[perl #120085]|https://rt.perl.org/rt3/Ticket/Display.html?id=120085>.
60
51c34fa4
RS
61=item Regular Expression Set Operations
62
aec1aee9 63Introduced in Perl 5.18
51c34fa4 64
ca888027
RS
65The ticket for this feature is
66L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>.
67
51c34fa4
RS
68See also: L<perlrecharclass/Extended Bracketed Character Classes>
69
70Using this feature triggers warnings in the category
71C<experimental::regex_sets>.
72
afdb3b14
RS
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
baabe3fb 83=item Aliasing via reference
82848c10
FC
84
85Introduced in Perl 5.22.0
86
87Using this feature triggers warnings in the category
baabe3fb 88C<experimental::refaliasing>.
82848c10
FC
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
99734069
FC
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
1e50fc51 103L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
99734069
FC
104
105See also: L<perlsub/Constant Functions>
106
1eac213a
KW
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
6207d112
FC
116=item String- and number-specific bitwise operators
117
aec1aee9 118Introduced in Perl 5.22.0
6207d112
FC
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
0fe81779 126L<[perl #123707]|https://rt.perl.org/rt3/Ticket/Display.html?id=123707>.
6207d112 127
706c19b7 128=item The <:win32> IO pseudolayer
42e73e1c 129
a532d4a5
RS
130The ticket for this feature is
131L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
132
42e73e1c 133See also L<perlrun>
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
42e73e1c 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
51c34fa4 262=item 5.005-style threading
42e73e1c 263
51c34fa4 264Introduced in Perl 5.005
42e73e1c 265
51c34fa4 266Removed in Perl 5.10
42e73e1c 267
51c34fa4 268=item perlcc
fe8d2675 269
51c34fa4 270Introduced in Perl 5.005
fe8d2675 271
51c34fa4 272Moved from Perl 5.9.0 to CPAN
fe8d2675 273
51c34fa4 274=item The pseudo-hash data type
fe8d2675 275
51c34fa4 276Introduced in Perl 5.6.0
fe8d2675 277
51c34fa4 278Removed in Perl 5.9.0
fe8d2675
AT
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
51c34fa4 286=item Assertions
fe8d2675 287
51c34fa4 288The C<-A> command line switch
fe8d2675 289
51c34fa4 290Introduced in Perl 5.9.0
fe8d2675 291
51c34fa4 292Removed in Perl 5.9.5
fe8d2675 293
51c34fa4 294=item Test::Harness::Straps
fe8d2675 295
51c34fa4 296Moved from Perl 5.10.1 to CPAN
fe8d2675 297
51c34fa4 298=item C<legacy>
fe8d2675 299
51c34fa4 300The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
fe8d2675 301
aec1aee9 302Introduced in Perl 5.11.2
51c34fa4 303
aec1aee9 304Removed in Perl 5.11.3
fe8d2675 305
f8b823eb
DIM
306=item Lexical C<$_>
307
74a78c10
AC
308Using this feature triggered warnings in the category
309C<experimental::lexical_topic>.
310
f8b823eb
DIM
311Introduced in Perl 5.10.0
312
313Removed in Perl 5.24.0
314
315=item Array and hash container functions accept references
316
74a78c10
AC
317Using this feature triggered warnings in the category
318C<experimental::autoderef>.
319
f8b823eb
DIM
320Superseded by L</Postfix dereference syntax>.
321
322Introduced in Perl 5.14.0
323
324Removed in Perl 5.24.0
325
42e73e1c 326=back
327
2b0121e1
AS
328=head1 SEE ALSO
329
330For a complete list of features check L<feature>.
331
42e73e1c 332=head1 AUTHORS
333
334brian d foy C<< <brian.d.foy@gmail.com> >>
335
fe8d2675
AT
336SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
337
42e73e1c 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