This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 2384afee9 / #123553
[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
706c19b7 126=item The <:win32> IO pseudolayer
42e73e1c 127
a532d4a5
RS
128The ticket for this feature is
129L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
130
42e73e1c 131See also L<perlrun>
132
42e73e1c 133=item There is an C<installhtml> target in the Makefile.
afb63838
RS
134
135The ticket for this feature is
136L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
42e73e1c 137
138=item Unicode in Perl on EBCDIC
139
42e73e1c 140=back
141
142=head2 Accepted features
143
144These features were so wildly successful and played so well with others that
145we decided to remove their experimental status and admit them as full, stable
51c34fa4 146features in the world of Perl, lavishing all the benefits and luxuries thereof.
42e73e1c 147They are also awarded +5 Stability and +3 Charisma.
148
149=over 8
150
51c34fa4 151=item 64-bit support
42e73e1c 152
51c34fa4 153Introduced in Perl 5.005
fe8d2675 154
51c34fa4 155=item die accepts a reference
fe8d2675 156
51c34fa4 157Introduced in Perl 5.005
fe8d2675
AT
158
159=item DB module
160
161Introduced in Perl 5.6.0
162
163See also L<perldebug>, L<perldebtut>
164
165=item Weak references
166
167Introduced in Perl 5.6.0
168
169=item Internal file glob
170
171Introduced in Perl 5.6.0
172
51c34fa4 173=item fork() emulation
fe8d2675 174
51c34fa4 175Introduced in Perl 5.6.1
fe8d2675 176
51c34fa4 177See also L<perlfork>
fe8d2675 178
3a0e7915
RS
179=item -Dusemultiplicity -Duseithreads
180
181Introduced in Perl 5.6.0
182
183Accepted in Perl 5.8.0
184
36d2f798
RS
185=item Support for long doubles
186
187Introduced in Perl 5.6.0
188
189Accepted in Perl 5.8.1
190
51c34fa4
RS
191=item The C<\N> regex character class
192
193The C<\N> character class, not to be confused with the named character
194sequence C<\N{NAME}>, denotes any non-newline character in a regular
195expression.
196
3cb3bd66
RS
197Introduced in Perl 5.12
198
199Exact version of acceptance unclear, but no later than Perl 5.18.
fe8d2675 200
83f32aba
RS
201=item C<(?{code})> and C<(??{ code })>
202
203Introduced in Perl 5.6.0
204
205Accepted in Perl 5.20.0
206
207See also L<perlre>
208
e48e70eb
RS
209=item Linux abstract Unix domain sockets
210
211Introduced in Perl 5.9.2
212
213Accepted before Perl 5.20.0. The Socket library is now primarily maintained
214on CPAN, rather than in the perl core.
215
216See also L<Socket>
217
af7c9f88
RS
218=item Lvalue subroutines
219
220Introduced in Perl 5.6.0
221
222Accepted in Perl 5.20.0
223
224See also L<perlsub>
225
b387afbc
RS
226=item Backtracking control verbs
227
228C<(*ACCEPT)>
229
230Introduced in: Perl 5.10
231
232Accepted in Perl 5.20.0
233
8a7bc862
RS
234=item The <:pop> IO pseudolayer
235
236See also L<perlrun>
237
238Accepted in Perl 5.20.0
239
42e73e1c 240=back
241
242=head2 Removed features
243
244These features are no longer considered experimental and their functionality
245has disappeared. It's your own fault if you wrote production programs using
246these features after we explicitly told you not to (see L<perlpolicy>).
247
248=over 8
249
51c34fa4 250=item 5.005-style threading
42e73e1c 251
51c34fa4 252Introduced in Perl 5.005
42e73e1c 253
51c34fa4 254Removed in Perl 5.10
42e73e1c 255
51c34fa4 256=item perlcc
fe8d2675 257
51c34fa4 258Introduced in Perl 5.005
fe8d2675 259
51c34fa4 260Moved from Perl 5.9.0 to CPAN
fe8d2675 261
51c34fa4 262=item The pseudo-hash data type
fe8d2675 263
51c34fa4 264Introduced in Perl 5.6.0
fe8d2675 265
51c34fa4 266Removed in Perl 5.9.0
fe8d2675
AT
267
268=item GetOpt::Long Options can now take multiple values at once (experimental)
269
270C<Getopt::Long> upgraded to version 2.35
271
272Removed in Perl 5.8.8
273
51c34fa4 274=item Assertions
fe8d2675 275
51c34fa4 276The C<-A> command line switch
fe8d2675 277
51c34fa4 278Introduced in Perl 5.9.0
fe8d2675 279
51c34fa4 280Removed in Perl 5.9.5
fe8d2675 281
51c34fa4 282=item Test::Harness::Straps
fe8d2675 283
51c34fa4 284Moved from Perl 5.10.1 to CPAN
fe8d2675 285
51c34fa4 286=item C<legacy>
fe8d2675 287
51c34fa4 288The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
fe8d2675 289
51c34fa4
RS
290Introduced in: 5.11.2
291
292Removed in: 5.11.3
fe8d2675 293
42e73e1c 294=back
295
2b0121e1
AS
296=head1 SEE ALSO
297
298For a complete list of features check L<feature>.
299
42e73e1c 300=head1 AUTHORS
301
302brian d foy C<< <brian.d.foy@gmail.com> >>
303
fe8d2675
AT
304SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
305
42e73e1c 306=head1 COPYRIGHT
307
308Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
309
310=head1 LICENSE
311
312You can use and redistribute this document under the same terms as Perl
313itself.
314
315=cut