This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update perldelta with details about changes to regexp engine extflags
[perl5.git] / pod / perlexperiment.pod
... / ...
CommitLineData
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
8core. Although all of these are documented with their appropriate topics,
9this succinct listing gives you an overview and basic facts about their
10status.
11
12So far we've merely tried to find and list the experimental features and infer
13their inception, versions, etc. There's a lot of speculation here.
14
15=head2 Current experiments
16
17=over 8
18
19=item C<our> can now have an experimental optional attribute C<unique>
20
21Introduced in Perl 5.8.0
22
23Deprecated in Perl 5.10.0
24
25The ticket for this feature is
26L<[perl #119313]|https://rt.perl.org/rt3/Ticket/Display.html?id=119313>.
27
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
37The ticket for this feature is
38L<[perl #119317]|https://rt.perl.org/rt3/Ticket/Display.html?id=119317>.
39
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
47The ticket for this feature is
48L<[perl #119315]|https://rt.perl.org/rt3/Ticket/Display.html?id=119315>.
49
50=item Pluggable keywords
51
52The ticket for this feature is
53L<[perl #119455]|https://rt.perl.org/rt3/Ticket/Display.html?id=119455>.
54
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
63The ticket for this feature is
64L<[perl #119437]|https://rt.perl.org/rt3/Ticket/Display.html?id=119437>.
65
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
75The ticket for this feature is
76L<[perl #120085]|https://rt.perl.org/rt3/Ticket/Display.html?id=120085>.
77
78=item Regular Expression Set Operations
79
80Introduced in: Perl 5.18
81
82The ticket for this feature is
83L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>.
84
85See also: L<perlrecharclass/Extended Bracketed Character Classes>
86
87Using this feature triggers warnings in the category
88C<experimental::regex_sets>.
89
90=item C<\s> in regexp matches vertical tab
91
92Introduced in Perl 5.18
93
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
104=item The <:win32> IO pseudolayer
105
106The ticket for this feature is
107L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
108
109See also L<perlrun>
110
111=item There is an C<installhtml> target in the Makefile.
112
113The ticket for this feature is
114L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
115
116=item Unicode in Perl on EBCDIC
117
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
124features in the world of Perl, lavishing all the benefits and luxuries thereof.
125They are also awarded +5 Stability and +3 Charisma.
126
127=over 8
128
129=item 64-bit support
130
131Introduced in Perl 5.005
132
133=item die accepts a reference
134
135Introduced in Perl 5.005
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
151=item fork() emulation
152
153Introduced in Perl 5.6.1
154
155See also L<perlfork>
156
157=item -Dusemultiplicity -Duseithreads
158
159Introduced in Perl 5.6.0
160
161Accepted in Perl 5.8.0
162
163=item Support for long doubles
164
165Introduced in Perl 5.6.0
166
167Accepted in Perl 5.8.1
168
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
175Introduced in Perl 5.12
176
177Exact version of acceptance unclear, but no later than Perl 5.18.
178
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
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
196=item Lvalue subroutines
197
198Introduced in Perl 5.6.0
199
200Accepted in Perl 5.20.0
201
202See also L<perlsub>
203
204=item Backtracking control verbs
205
206C<(*ACCEPT)>
207
208Introduced in: Perl 5.10
209
210Accepted in Perl 5.20.0
211
212=item The <:pop> IO pseudolayer
213
214See also L<perlrun>
215
216Accepted in Perl 5.20.0
217
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
228=item 5.005-style threading
229
230Introduced in Perl 5.005
231
232Removed in Perl 5.10
233
234=item perlcc
235
236Introduced in Perl 5.005
237
238Moved from Perl 5.9.0 to CPAN
239
240=item The pseudo-hash data type
241
242Introduced in Perl 5.6.0
243
244Removed in Perl 5.9.0
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
252=item Assertions
253
254The C<-A> command line switch
255
256Introduced in Perl 5.9.0
257
258Removed in Perl 5.9.5
259
260=item Test::Harness::Straps
261
262Moved from Perl 5.10.1 to CPAN
263
264=item C<legacy>
265
266The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
267
268Introduced in: 5.11.2
269
270Removed in: 5.11.3
271
272=back
273
274=head1 AUTHORS
275
276brian d foy C<< <brian.d.foy@gmail.com> >>
277
278SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
279
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