This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlexperiment: Was missing vlb
[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
dfc19b6b
KW
119=item Script runs
120
121Introduced in Perl 5.28.0
122
123Using this feature triggers warnings in the category
124C<experimental::script_run>.
125
126See also: L<perlre/Script Runs>
127
6e03bd4c 128=item Alphabetic assertions
e7206367
KW
129
130Introduced in Perl 5.28.0
131
132Using this feature triggers warnings in the category
133C<experimental::alpha_assertions>.
134
135See also: L<perlre/Extended Patterns>.
dfc19b6b 136
49e19b77
KW
137=item (Limited) Variable-length look-behind
138
139Introduced in Perl 5.30.0. Variability of up to 255 characters is
140handled.
141
142Using this feature triggers warnings in the category
143C<experimental::vlb>.
144
145See also: L<perlre/(*positive_lookbehind:I<pattern>)> and
146L<perlre/(*negative_lookbehind:I<pattern>)>
147
42e73e1c 148=back
149
150=head2 Accepted features
151
152These features were so wildly successful and played so well with others that
153we decided to remove their experimental status and admit them as full, stable
51c34fa4 154features in the world of Perl, lavishing all the benefits and luxuries thereof.
42e73e1c 155They are also awarded +5 Stability and +3 Charisma.
156
157=over 8
158
51c34fa4 159=item 64-bit support
42e73e1c 160
51c34fa4 161Introduced in Perl 5.005
fe8d2675 162
51c34fa4 163=item die accepts a reference
fe8d2675 164
51c34fa4 165Introduced in Perl 5.005
fe8d2675
SAT
166
167=item DB module
168
169Introduced in Perl 5.6.0
170
171See also L<perldebug>, L<perldebtut>
172
173=item Weak references
174
175Introduced in Perl 5.6.0
176
177=item Internal file glob
178
179Introduced in Perl 5.6.0
180
51c34fa4 181=item fork() emulation
fe8d2675 182
51c34fa4 183Introduced in Perl 5.6.1
fe8d2675 184
51c34fa4 185See also L<perlfork>
fe8d2675 186
3a0e7915
RS
187=item -Dusemultiplicity -Duseithreads
188
189Introduced in Perl 5.6.0
190
191Accepted in Perl 5.8.0
192
36d2f798
RS
193=item Support for long doubles
194
195Introduced in Perl 5.6.0
196
197Accepted in Perl 5.8.1
198
51c34fa4
RS
199=item The C<\N> regex character class
200
201The C<\N> character class, not to be confused with the named character
202sequence C<\N{NAME}>, denotes any non-newline character in a regular
203expression.
204
3cb3bd66
RS
205Introduced in Perl 5.12
206
207Exact version of acceptance unclear, but no later than Perl 5.18.
fe8d2675 208
83f32aba
RS
209=item C<(?{code})> and C<(??{ code })>
210
211Introduced in Perl 5.6.0
212
213Accepted in Perl 5.20.0
214
215See also L<perlre>
216
e48e70eb
RS
217=item Linux abstract Unix domain sockets
218
219Introduced in Perl 5.9.2
220
221Accepted before Perl 5.20.0. The Socket library is now primarily maintained
222on CPAN, rather than in the perl core.
223
224See also L<Socket>
225
af7c9f88
RS
226=item Lvalue subroutines
227
228Introduced in Perl 5.6.0
229
230Accepted in Perl 5.20.0
231
232See also L<perlsub>
233
b387afbc
RS
234=item Backtracking control verbs
235
236C<(*ACCEPT)>
237
aec1aee9 238Introduced in Perl 5.10
b387afbc
RS
239
240Accepted in Perl 5.20.0
241
8a7bc862
RS
242=item The <:pop> IO pseudolayer
243
244See also L<perlrun>
245
246Accepted in Perl 5.20.0
247
779cf272
KW
248=item C<\s> in regexp matches vertical tab
249
250Accepted in Perl 5.22.0
251
2ad792cd
AC
252=item Postfix dereference syntax
253
254Introduced in Perl 5.20.0
255
256Accepted in Perl 5.24.0
257
06c4bad0
FC
258=item Lexical subroutines
259
260Introduced in Perl 5.18.0
261
262Accepted in Perl 5.26.0
263
193789ac
FC
264=item String- and number-specific bitwise operators
265
266Introduced in Perl 5.22.0
267
268Accepted in Perl 5.28.0
269
42e73e1c 270=back
271
272=head2 Removed features
273
274These features are no longer considered experimental and their functionality
275has disappeared. It's your own fault if you wrote production programs using
276these features after we explicitly told you not to (see L<perlpolicy>).
277
278=over 8
279
51c34fa4 280=item 5.005-style threading
42e73e1c 281
51c34fa4 282Introduced in Perl 5.005
42e73e1c 283
51c34fa4 284Removed in Perl 5.10
42e73e1c 285
51c34fa4 286=item perlcc
fe8d2675 287
51c34fa4 288Introduced in Perl 5.005
fe8d2675 289
51c34fa4 290Moved from Perl 5.9.0 to CPAN
fe8d2675 291
51c34fa4 292=item The pseudo-hash data type
fe8d2675 293
51c34fa4 294Introduced in Perl 5.6.0
fe8d2675 295
51c34fa4 296Removed in Perl 5.9.0
fe8d2675
SAT
297
298=item GetOpt::Long Options can now take multiple values at once (experimental)
299
300C<Getopt::Long> upgraded to version 2.35
301
302Removed in Perl 5.8.8
303
51c34fa4 304=item Assertions
fe8d2675 305
51c34fa4 306The C<-A> command line switch
fe8d2675 307
51c34fa4 308Introduced in Perl 5.9.0
fe8d2675 309
51c34fa4 310Removed in Perl 5.9.5
fe8d2675 311
51c34fa4 312=item Test::Harness::Straps
fe8d2675 313
51c34fa4 314Moved from Perl 5.10.1 to CPAN
fe8d2675 315
51c34fa4 316=item C<legacy>
fe8d2675 317
51c34fa4 318The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
fe8d2675 319
aec1aee9 320Introduced in Perl 5.11.2
51c34fa4 321
aec1aee9 322Removed in Perl 5.11.3
fe8d2675 323
f8b823eb
DIM
324=item Lexical C<$_>
325
74a78c10
AC
326Using this feature triggered warnings in the category
327C<experimental::lexical_topic>.
328
f8b823eb
DIM
329Introduced in Perl 5.10.0
330
331Removed in Perl 5.24.0
332
333=item Array and hash container functions accept references
334
74a78c10
AC
335Using this feature triggered warnings in the category
336C<experimental::autoderef>.
337
f8b823eb
DIM
338Superseded by L</Postfix dereference syntax>.
339
340Introduced in Perl 5.14.0
341
342Removed in Perl 5.24.0
343
85cd139f
DIM
344=item C<our> can have an experimental optional attribute C<unique>
345
346Introduced in Perl 5.8.0
347
348Deprecated in Perl 5.10.0
349
350Removed in Perl 5.28.0
351
42e73e1c 352=back
353
2b0121e1
AS
354=head1 SEE ALSO
355
356For a complete list of features check L<feature>.
357
42e73e1c 358=head1 AUTHORS
359
360brian d foy C<< <brian.d.foy@gmail.com> >>
361
fe8d2675
SAT
362SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
363
42e73e1c 364=head1 COPYRIGHT
365
366Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
367
368=head1 LICENSE
369
370You can use and redistribute this document under the same terms as Perl
371itself.
372
373=cut