This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 1ead70b69c
[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
3602d7b6
RS
90=item C<\s> in regexp matches vertical tab
91
92Introduced in Perl 5.18
51c34fa4 93
afdb3b14
RS
94=item Subroutine signatures
95
96Introduced in Perl 5.20.0
97
98Using this feature triggers warnings in the category
99C<experimental::signatures>.
100
101The ticket for this feature is
102L<[perl #121481]|https://rt.perl.org/Ticket/Display.html?id=121481>.
103
01582e5c
RS
104=item Postfix dereference syntax
105
106Introduced in Perl 5.20.0
107
108Using this feature triggers warnings in the category
109C<experimental::postderef>.
110
111The ticket for this feature is
112L<[perl #120162]|https://rt.perl.org:443/rt3/Ticket/Display.html?id=120162>.
113
baabe3fb 114=item Aliasing via reference
82848c10
FC
115
116Introduced in Perl 5.22.0
117
118Using this feature triggers warnings in the category
baabe3fb 119C<experimental::refaliasing>.
82848c10
FC
120
121The ticket for this feature is
122L<[perl #122947]|https://rt.perl.org/rt3/Ticket/Display.html?id=122947>.
123
124See also: L<perlref/Assigning to References>
125
99734069
FC
126=item The "const" attribute
127
128Introduced in Perl 5.22.0
129
130Using this feature triggers warnings in the category
131C<experimental::const_attr>.
132
133The ticket for this feature is
1e50fc51 134L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
99734069
FC
135
136See also: L<perlsub/Constant Functions>
137
706c19b7 138=item The <:win32> IO pseudolayer
42e73e1c 139
a532d4a5
RS
140The ticket for this feature is
141L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
142
42e73e1c 143See also L<perlrun>
144
42e73e1c 145=item There is an C<installhtml> target in the Makefile.
afb63838
RS
146
147The ticket for this feature is
148L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
42e73e1c 149
150=item Unicode in Perl on EBCDIC
151
42e73e1c 152=back
153
154=head2 Accepted features
155
156These features were so wildly successful and played so well with others that
157we decided to remove their experimental status and admit them as full, stable
51c34fa4 158features in the world of Perl, lavishing all the benefits and luxuries thereof.
42e73e1c 159They are also awarded +5 Stability and +3 Charisma.
160
161=over 8
162
51c34fa4 163=item 64-bit support
42e73e1c 164
51c34fa4 165Introduced in Perl 5.005
fe8d2675 166
51c34fa4 167=item die accepts a reference
fe8d2675 168
51c34fa4 169Introduced in Perl 5.005
fe8d2675
AT
170
171=item DB module
172
173Introduced in Perl 5.6.0
174
175See also L<perldebug>, L<perldebtut>
176
177=item Weak references
178
179Introduced in Perl 5.6.0
180
181=item Internal file glob
182
183Introduced in Perl 5.6.0
184
51c34fa4 185=item fork() emulation
fe8d2675 186
51c34fa4 187Introduced in Perl 5.6.1
fe8d2675 188
51c34fa4 189See also L<perlfork>
fe8d2675 190
3a0e7915
RS
191=item -Dusemultiplicity -Duseithreads
192
193Introduced in Perl 5.6.0
194
195Accepted in Perl 5.8.0
196
36d2f798
RS
197=item Support for long doubles
198
199Introduced in Perl 5.6.0
200
201Accepted in Perl 5.8.1
202
51c34fa4
RS
203=item The C<\N> regex character class
204
205The C<\N> character class, not to be confused with the named character
206sequence C<\N{NAME}>, denotes any non-newline character in a regular
207expression.
208
3cb3bd66
RS
209Introduced in Perl 5.12
210
211Exact version of acceptance unclear, but no later than Perl 5.18.
fe8d2675 212
83f32aba
RS
213=item C<(?{code})> and C<(??{ code })>
214
215Introduced in Perl 5.6.0
216
217Accepted in Perl 5.20.0
218
219See also L<perlre>
220
e48e70eb
RS
221=item Linux abstract Unix domain sockets
222
223Introduced in Perl 5.9.2
224
225Accepted before Perl 5.20.0. The Socket library is now primarily maintained
226on CPAN, rather than in the perl core.
227
228See also L<Socket>
229
af7c9f88
RS
230=item Lvalue subroutines
231
232Introduced in Perl 5.6.0
233
234Accepted in Perl 5.20.0
235
236See also L<perlsub>
237
b387afbc
RS
238=item Backtracking control verbs
239
240C<(*ACCEPT)>
241
242Introduced in: Perl 5.10
243
244Accepted in Perl 5.20.0
245
8a7bc862
RS
246=item The <:pop> IO pseudolayer
247
248See also L<perlrun>
249
250Accepted in Perl 5.20.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
51c34fa4
RS
302Introduced in: 5.11.2
303
304Removed in: 5.11.3
fe8d2675 305
42e73e1c 306=back
307
2b0121e1
AS
308=head1 SEE ALSO
309
310For a complete list of features check L<feature>.
311
42e73e1c 312=head1 AUTHORS
313
314brian d foy C<< <brian.d.foy@gmail.com> >>
315
fe8d2675
AT
316SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
317
42e73e1c 318=head1 COPYRIGHT
319
320Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
321
322=head1 LICENSE
323
324You can use and redistribute this document under the same terms as Perl
325itself.
326
327=cut