This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlrecharclass: Fix typo
[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 Lexical C<$_>
41
42 Introduced in Perl 5.10.0
43
44 Using this feature triggers warnings in the category
45 C<experimental::lexical_topic>.
46
47 The ticket for this feature is
48 L<[perl #119315]|https://rt.perl.org/rt3/Ticket/Display.html?id=119315>.
49
50 =item Pluggable keywords
51
52 The ticket for this feature is
53 L<[perl #119455]|https://rt.perl.org/rt3/Ticket/Display.html?id=119455>.
54
55 See L<perlapi/PL_keyword_plugin> for the mechanism.
56
57 Introduced in: Perl 5.11.2
58
59 =item Array and hash container functions accept references
60
61 Introduced in Perl 5.14.0
62
63 The ticket for this feature is
64 L<[perl #119437]|https://rt.perl.org/rt3/Ticket/Display.html?id=119437>.
65
66 =item Lexical subroutines
67
68 Introduced in: Perl 5.18
69
70 See also: L<perlsub/Lexical Subroutines>
71
72 Using this feature triggers warnings in the category
73 C<experimental::lexical_subs>.
74
75 The ticket for this feature is
76 L<[perl #120085]|https://rt.perl.org/rt3/Ticket/Display.html?id=120085>.
77
78 =item Regular Expression Set Operations
79
80 Introduced in: Perl 5.18
81
82 The ticket for this feature is
83 L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>.
84
85 See also: L<perlrecharclass/Extended Bracketed Character Classes>
86
87 Using this feature triggers warnings in the category
88 C<experimental::regex_sets>.
89
90 =item C<\s> in regexp matches vertical tab
91
92 Introduced in Perl 5.18
93
94 =item Subroutine signatures
95
96 Introduced in Perl 5.20.0
97
98 Using this feature triggers warnings in the category
99 C<experimental::signatures>.
100
101 The ticket for this feature is
102 L<[perl #121481]|https://rt.perl.org/Ticket/Display.html?id=121481>.
103
104 =item Postfix dereference syntax
105
106 Introduced in Perl 5.20.0
107
108 Using this feature triggers warnings in the category
109 C<experimental::postderef>.
110
111 The ticket for this feature is
112 L<[perl #120162]|https://rt.perl.org:443/rt3/Ticket/Display.html?id=120162>.
113
114 =item Aliasing via reference
115
116 Introduced in Perl 5.22.0
117
118 Using this feature triggers warnings in the category
119 C<experimental::refaliasing>.
120
121 The ticket for this feature is
122 L<[perl #122947]|https://rt.perl.org/rt3/Ticket/Display.html?id=122947>.
123
124 See also: L<perlref/Assigning to References>
125
126 =item The "const" attribute
127
128 Introduced in Perl 5.22.0
129
130 Using this feature triggers warnings in the category
131 C<experimental::const_attr>.
132
133 The ticket for this feature is
134 L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
135
136 See also: L<perlsub/Constant Functions>
137
138 =item The <:win32> IO pseudolayer
139
140 The ticket for this feature is
141 L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
142
143 See also L<perlrun>
144
145 =item There is an C<installhtml> target in the Makefile.
146
147 The ticket for this feature is
148 L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
149
150 =item Unicode in Perl on EBCDIC
151
152 =back
153
154 =head2 Accepted features
155
156 These features were so wildly successful and played so well with others that
157 we decided to remove their experimental status and admit them as full, stable
158 features in the world of Perl, lavishing all the benefits and luxuries thereof.
159 They are also awarded +5 Stability and +3 Charisma.
160
161 =over 8
162
163 =item 64-bit support
164
165 Introduced in Perl 5.005
166
167 =item die accepts a reference
168
169 Introduced in Perl 5.005
170
171 =item DB module
172
173 Introduced in Perl 5.6.0
174
175 See also L<perldebug>, L<perldebtut>
176
177 =item Weak references
178
179 Introduced in Perl 5.6.0
180
181 =item Internal file glob
182
183 Introduced in Perl 5.6.0
184
185 =item fork() emulation
186
187 Introduced in Perl 5.6.1
188
189 See also L<perlfork>
190
191 =item -Dusemultiplicity -Duseithreads
192
193 Introduced in Perl 5.6.0
194
195 Accepted in Perl 5.8.0
196
197 =item Support for long doubles
198
199 Introduced in Perl 5.6.0
200
201 Accepted in Perl 5.8.1
202
203 =item The C<\N> regex character class
204
205 The C<\N> character class, not to be confused with the named character
206 sequence C<\N{NAME}>, denotes any non-newline character in a regular
207 expression.
208
209 Introduced in Perl 5.12
210
211 Exact version of acceptance unclear, but no later than Perl 5.18.
212
213 =item C<(?{code})> and C<(??{ code })>
214
215 Introduced in Perl 5.6.0
216
217 Accepted in Perl 5.20.0
218
219 See also L<perlre>
220
221 =item Linux abstract Unix domain sockets
222
223 Introduced in Perl 5.9.2
224
225 Accepted before Perl 5.20.0.  The Socket library is now primarily maintained
226 on CPAN, rather than in the perl core.
227
228 See also L<Socket>
229
230 =item Lvalue subroutines
231
232 Introduced in Perl 5.6.0
233
234 Accepted in Perl 5.20.0
235
236 See also L<perlsub>
237
238 =item Backtracking control verbs
239
240 C<(*ACCEPT)>
241
242 Introduced in: Perl 5.10
243
244 Accepted in Perl 5.20.0
245
246 =item The <:pop> IO pseudolayer
247
248 See also L<perlrun>
249
250 Accepted in Perl 5.20.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 =back
307
308 =head1 SEE ALSO
309
310 For a complete list of features check L<feature>.
311
312 =head1 AUTHORS
313
314 brian d foy C<< <brian.d.foy@gmail.com> >>
315
316 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
317
318 =head1 COPYRIGHT
319
320 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
321
322 =head1 LICENSE
323
324 You can use and redistribute this document under the same terms as Perl
325 itself.
326
327 =cut