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