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