This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
PATCH: [perl #125805] Perl segfaults with a regex_sets error message
[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 Subroutine signatures
91
92Introduced in Perl 5.20.0
93
94Using this feature triggers warnings in the category
95C<experimental::signatures>.
96
97The ticket for this feature is
98L<[perl #121481]|https://rt.perl.org/Ticket/Display.html?id=121481>.
99
100=item Aliasing via reference
101
102Introduced in Perl 5.22.0
103
104Using this feature triggers warnings in the category
105C<experimental::refaliasing>.
106
107The ticket for this feature is
108L<[perl #122947]|https://rt.perl.org/rt3/Ticket/Display.html?id=122947>.
109
110See also: L<perlref/Assigning to References>
111
112=item The "const" attribute
113
114Introduced in Perl 5.22.0
115
116Using this feature triggers warnings in the category
117C<experimental::const_attr>.
118
119The ticket for this feature is
120L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
121
122See also: L<perlsub/Constant Functions>
123
124=item use re 'strict';
125
126Introduced in Perl 5.22.0
127
128Using this feature triggers warnings in the category
129C<experimental::re_strict>.
130
131See L<re/'strict' mode>
132
133=item String- and number-specific bitwise operators
134
135Introduced in: Perl 5.22.0
136
137See also: L<perlop/Bitwise String Operators>
138
139Using this feature triggers warnings in the category
140C<experimental::bitwise>.
141
142The ticket for this feature is
143L<[perl #123707]|https://rt.perl.org/rt3/Ticket/Display.html?id=123707>.
144
145=item The <:win32> IO pseudolayer
146
147The ticket for this feature is
148L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
149
150See also L<perlrun>
151
152=item There is an C<installhtml> target in the Makefile.
153
154The ticket for this feature is
155L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
156
157=item Unicode in Perl on EBCDIC
158
159=back
160
161=head2 Accepted features
162
163These features were so wildly successful and played so well with others that
164we decided to remove their experimental status and admit them as full, stable
165features in the world of Perl, lavishing all the benefits and luxuries thereof.
166They are also awarded +5 Stability and +3 Charisma.
167
168=over 8
169
170=item 64-bit support
171
172Introduced in Perl 5.005
173
174=item die accepts a reference
175
176Introduced in Perl 5.005
177
178=item DB module
179
180Introduced in Perl 5.6.0
181
182See also L<perldebug>, L<perldebtut>
183
184=item Weak references
185
186Introduced in Perl 5.6.0
187
188=item Internal file glob
189
190Introduced in Perl 5.6.0
191
192=item fork() emulation
193
194Introduced in Perl 5.6.1
195
196See also L<perlfork>
197
198=item -Dusemultiplicity -Duseithreads
199
200Introduced in Perl 5.6.0
201
202Accepted in Perl 5.8.0
203
204=item Support for long doubles
205
206Introduced in Perl 5.6.0
207
208Accepted in Perl 5.8.1
209
210=item The C<\N> regex character class
211
212The C<\N> character class, not to be confused with the named character
213sequence C<\N{NAME}>, denotes any non-newline character in a regular
214expression.
215
216Introduced in Perl 5.12
217
218Exact version of acceptance unclear, but no later than Perl 5.18.
219
220=item C<(?{code})> and C<(??{ code })>
221
222Introduced in Perl 5.6.0
223
224Accepted in Perl 5.20.0
225
226See also L<perlre>
227
228=item Linux abstract Unix domain sockets
229
230Introduced in Perl 5.9.2
231
232Accepted before Perl 5.20.0. The Socket library is now primarily maintained
233on CPAN, rather than in the perl core.
234
235See also L<Socket>
236
237=item Lvalue subroutines
238
239Introduced in Perl 5.6.0
240
241Accepted in Perl 5.20.0
242
243See also L<perlsub>
244
245=item Backtracking control verbs
246
247C<(*ACCEPT)>
248
249Introduced in: Perl 5.10
250
251Accepted in Perl 5.20.0
252
253=item The <:pop> IO pseudolayer
254
255See also L<perlrun>
256
257Accepted in Perl 5.20.0
258
259=item C<\s> in regexp matches vertical tab
260
261Accepted in Perl 5.22.0
262
263=item Postfix dereference syntax
264
265Introduced in Perl 5.20.0
266
267Accepted in Perl 5.24.0
268
269=back
270
271=head2 Removed features
272
273These features are no longer considered experimental and their functionality
274has disappeared. It's your own fault if you wrote production programs using
275these features after we explicitly told you not to (see L<perlpolicy>).
276
277=over 8
278
279=item 5.005-style threading
280
281Introduced in Perl 5.005
282
283Removed in Perl 5.10
284
285=item perlcc
286
287Introduced in Perl 5.005
288
289Moved from Perl 5.9.0 to CPAN
290
291=item The pseudo-hash data type
292
293Introduced in Perl 5.6.0
294
295Removed in Perl 5.9.0
296
297=item GetOpt::Long Options can now take multiple values at once (experimental)
298
299C<Getopt::Long> upgraded to version 2.35
300
301Removed in Perl 5.8.8
302
303=item Assertions
304
305The C<-A> command line switch
306
307Introduced in Perl 5.9.0
308
309Removed in Perl 5.9.5
310
311=item Test::Harness::Straps
312
313Moved from Perl 5.10.1 to CPAN
314
315=item C<legacy>
316
317The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
318
319Introduced in: 5.11.2
320
321Removed in: 5.11.3
322
323=back
324
325=head1 SEE ALSO
326
327For a complete list of features check L<feature>.
328
329=head1 AUTHORS
330
331brian d foy C<< <brian.d.foy@gmail.com> >>
332
333SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
334
335=head1 COPYRIGHT
336
337Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
338
339=head1 LICENSE
340
341You can use and redistribute this document under the same terms as Perl
342itself.
343
344=cut