This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Mention warning categories for removed experimental features
[perl5.git] / pod / perlexperiment.pod
1 =head1 NAME
2
3 perlexperiment - A listing of experimental features in Perl
4
5 =head1 DESCRIPTION
6
7 This document lists the current and past experimental features in the perl
8 core. Although all of these are documented with their appropriate topics,
9 this succinct listing gives you an overview and basic facts about their
10 status.
11
12 So far we've merely tried to find and list the experimental features and infer
13 their 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
21 Introduced in Perl 5.8.0
22
23 Deprecated in Perl 5.10.0
24
25 The ticket for this feature is
26 L<[perl #119313]|https://rt.perl.org/rt3/Ticket/Display.html?id=119313>.
27
28 =item Smart match (C<~~>)
29
30 Introduced in Perl 5.10.0
31
32 Modified in Perl 5.10.1, 5.12.0
33
34 Using this feature triggers warnings in the category
35 C<experimental::smartmatch>.
36
37 The ticket for this feature is
38 L<[perl #119317]|https://rt.perl.org/rt3/Ticket/Display.html?id=119317>.
39
40 =item Pluggable keywords
41
42 The ticket for this feature is
43 L<[perl #119455]|https://rt.perl.org/rt3/Ticket/Display.html?id=119455>.
44
45 See L<perlapi/PL_keyword_plugin> for the mechanism.
46
47 Introduced in: Perl 5.11.2
48
49 =item Lexical subroutines
50
51 Introduced in: Perl 5.18
52
53 See also: L<perlsub/Lexical Subroutines>
54
55 Using this feature triggers warnings in the category
56 C<experimental::lexical_subs>.
57
58 The ticket for this feature is
59 L<[perl #120085]|https://rt.perl.org/rt3/Ticket/Display.html?id=120085>.
60
61 =item Regular Expression Set Operations
62
63 Introduced in: Perl 5.18
64
65 The ticket for this feature is
66 L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>.
67
68 See also: L<perlrecharclass/Extended Bracketed Character Classes>
69
70 Using this feature triggers warnings in the category
71 C<experimental::regex_sets>.
72
73 =item Subroutine signatures
74
75 Introduced in Perl 5.20.0
76
77 Using this feature triggers warnings in the category
78 C<experimental::signatures>.
79
80 The ticket for this feature is
81 L<[perl #121481]|https://rt.perl.org/Ticket/Display.html?id=121481>.
82
83 =item Aliasing via reference
84
85 Introduced in Perl 5.22.0
86
87 Using this feature triggers warnings in the category
88 C<experimental::refaliasing>.
89
90 The ticket for this feature is
91 L<[perl #122947]|https://rt.perl.org/rt3/Ticket/Display.html?id=122947>.
92
93 See also: L<perlref/Assigning to References>
94
95 =item The "const" attribute
96
97 Introduced in Perl 5.22.0
98
99 Using this feature triggers warnings in the category
100 C<experimental::const_attr>.
101
102 The ticket for this feature is
103 L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
104
105 See also: L<perlsub/Constant Functions>
106
107 =item use re 'strict';
108
109 Introduced in Perl 5.22.0
110
111 Using this feature triggers warnings in the category
112 C<experimental::re_strict>.
113
114 See L<re/'strict' mode>
115
116 =item String- and number-specific bitwise operators
117
118 Introduced in: Perl 5.22.0
119
120 See also: L<perlop/Bitwise String Operators>
121
122 Using this feature triggers warnings in the category
123 C<experimental::bitwise>.
124
125 The ticket for this feature is
126 L<[perl #123707]|https://rt.perl.org/rt3/Ticket/Display.html?id=123707>.
127
128 =item The <:win32> IO pseudolayer
129
130 The ticket for this feature is
131 L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
132
133 See also L<perlrun>
134
135 =item There is an C<installhtml> target in the Makefile.
136
137 The ticket for this feature is
138 L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
139
140 =item Unicode in Perl on EBCDIC
141
142 =back
143
144 =head2 Accepted features
145
146 These features were so wildly successful and played so well with others that
147 we decided to remove their experimental status and admit them as full, stable
148 features in the world of Perl, lavishing all the benefits and luxuries thereof.
149 They are also awarded +5 Stability and +3 Charisma.
150
151 =over 8
152
153 =item 64-bit support
154
155 Introduced in Perl 5.005
156
157 =item die accepts a reference
158
159 Introduced in Perl 5.005
160
161 =item DB module
162
163 Introduced in Perl 5.6.0
164
165 See also L<perldebug>, L<perldebtut>
166
167 =item Weak references
168
169 Introduced in Perl 5.6.0
170
171 =item Internal file glob
172
173 Introduced in Perl 5.6.0
174
175 =item fork() emulation
176
177 Introduced in Perl 5.6.1
178
179 See also L<perlfork>
180
181 =item -Dusemultiplicity -Duseithreads
182
183 Introduced in Perl 5.6.0
184
185 Accepted in Perl 5.8.0
186
187 =item Support for long doubles
188
189 Introduced in Perl 5.6.0
190
191 Accepted in Perl 5.8.1
192
193 =item The C<\N> regex character class
194
195 The C<\N> character class, not to be confused with the named character
196 sequence C<\N{NAME}>, denotes any non-newline character in a regular
197 expression.
198
199 Introduced in Perl 5.12
200
201 Exact version of acceptance unclear, but no later than Perl 5.18.
202
203 =item C<(?{code})> and C<(??{ code })>
204
205 Introduced in Perl 5.6.0
206
207 Accepted in Perl 5.20.0
208
209 See also L<perlre>
210
211 =item Linux abstract Unix domain sockets
212
213 Introduced in Perl 5.9.2
214
215 Accepted before Perl 5.20.0.  The Socket library is now primarily maintained
216 on CPAN, rather than in the perl core.
217
218 See also L<Socket>
219
220 =item Lvalue subroutines
221
222 Introduced in Perl 5.6.0
223
224 Accepted in Perl 5.20.0
225
226 See also L<perlsub>
227
228 =item Backtracking control verbs
229
230 C<(*ACCEPT)>
231
232 Introduced in: Perl 5.10
233
234 Accepted in Perl 5.20.0
235
236 =item The <:pop> IO pseudolayer
237
238 See also L<perlrun>
239
240 Accepted in Perl 5.20.0
241
242 =item C<\s> in regexp matches vertical tab
243
244 Accepted in Perl 5.22.0
245
246 =item Postfix dereference syntax
247
248 Introduced in Perl 5.20.0
249
250 Accepted in Perl 5.24.0
251
252 =back
253
254 =head2 Removed features
255
256 These features are no longer considered experimental and their functionality
257 has disappeared. It's your own fault if you wrote production programs using
258 these features after we explicitly told you not to (see L<perlpolicy>).
259
260 =over 8
261
262 =item 5.005-style threading
263
264 Introduced in Perl 5.005
265
266 Removed in Perl 5.10
267
268 =item perlcc
269
270 Introduced in Perl 5.005
271
272 Moved from Perl 5.9.0 to CPAN
273
274 =item The pseudo-hash data type
275
276 Introduced in Perl 5.6.0
277
278 Removed in Perl 5.9.0
279
280 =item GetOpt::Long Options can now take multiple values at once (experimental)
281
282 C<Getopt::Long> upgraded to version 2.35
283
284 Removed in Perl 5.8.8
285
286 =item Assertions
287
288 The C<-A> command line switch
289
290 Introduced in Perl 5.9.0
291
292 Removed in Perl 5.9.5
293
294 =item Test::Harness::Straps
295
296 Moved from Perl 5.10.1 to CPAN
297
298 =item C<legacy>
299
300 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
301
302 Introduced in: 5.11.2
303
304 Removed in: 5.11.3
305
306 =item Lexical C<$_>
307
308 Using this feature triggered warnings in the category
309 C<experimental::lexical_topic>.
310
311 Introduced in Perl 5.10.0
312
313 Removed in Perl 5.24.0
314
315 =item Array and hash container functions accept references
316
317 Using this feature triggered warnings in the category
318 C<experimental::autoderef>.
319
320 Superseded by L</Postfix dereference syntax>.
321
322 Introduced in Perl 5.14.0
323
324 Removed in Perl 5.24.0
325
326 =back
327
328 =head1 SEE ALSO
329
330 For a complete list of features check L<feature>.
331
332 =head1 AUTHORS
333
334 brian d foy C<< <brian.d.foy@gmail.com> >>
335
336 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
337
338 =head1 COPYRIGHT
339
340 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
341
342 =head1 LICENSE
343
344 You can use and redistribute this document under the same terms as Perl
345 itself.
346
347 =cut