This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlexperiment: mark :pop layer as accepted
[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 =item Linux abstract Unix domain sockets
26
27 Introduced in Perl 5.9.2
28
29 See also L<Socket>
30
31 =item Smart match (C<~~>)
32
33 Introduced in Perl 5.10.0
34
35 Modified in Perl 5.10.1, 5.12.0
36
37 Using this feature triggers warnings in the category
38 C<experimental::smartmatch>.
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 =item Pluggable keywords
48
49 See L<perlapi/PL_keyword_plugin> for the mechanism.
50
51 Introduced in: Perl 5.11.2
52
53 =item Array and hash container functions accept references
54
55 Introduced in Perl 5.14.0
56
57 =item Lexical subroutines
58
59 Introduced in: Perl 5.18
60
61 See also: L<perlsub/Lexical Subroutines>
62
63 Using this feature triggers warnings in the category
64 C<experimental::lexical_subs>.
65
66 =item Regular Expression Set Operations
67
68 Introduced in: Perl 5.18
69
70 See also: L<perlrecharclass/Extended Bracketed Character Classes>
71
72 Using this feature triggers warnings in the category
73 C<experimental::regex_sets>.
74
75 =item C<\s> in regexp matches vertical tab
76
77 Introduced in Perl 5.18
78
79 =item The <:win32> IO pseudolayer
80
81 See also L<perlrun>
82
83 =item MLDBM
84
85 See also L<perldsc>
86
87 =item internal functions with M flag
88
89 See also L<perlguts>
90
91 =item lex_start API
92
93 Introduced in Perl 5.13.7
94
95 =item internal API for C<%^H>
96
97 Introduced in Perl 5.13.7
98
99 See also C<cophh_> in L<perlapi>.
100
101 =item alloccopstash
102
103 Introduced in Perl 5.18.0
104
105 =item av_create_and_push
106
107 =item av_create_and_unshift_one
108
109 =item av_create_and_unshift_one
110
111 =item cop_store_label
112
113 Introduced in Perl 5.16.0
114
115 =item PL_keyword_plugin
116
117 =item gv_fetchmethod_*_flags
118
119 Introduced in Perl 5.16.0
120
121 =item hv_iternext_flags
122
123 =item lex_bufutf8
124
125 =item lex_discard_to
126
127 =item lex_grow_linestr
128
129 =item lex_next_chunk
130
131 =item lex_peek_unichar
132
133 =item lex_read_space
134
135 =item lex_read_to
136
137 =item lex_read_unichar
138
139 =item lex_stuff_pv
140
141 =item lex_stuff_pvn
142
143 =item lex_stuff_pvs
144
145 =item lex_stuff_sv
146
147 =item lex_unstuff
148
149 =item op_scope
150
151 =item op_lvalue
152
153 =item parse_fullstmt
154
155 =item parse_stmtseq
156
157 =item PL_parser-E<gt>bufend
158
159 =item PL_parser-E<gt>bufptr
160
161 =item PL_parser-E<gt>linestart
162
163 =item PL_parser-E<gt>linestr
164
165 =item Perl_signbit
166
167 =item pad_findmy
168
169 =item sv_utf8_decode
170
171 =item sv_utf8_downgrade
172
173 =item bytes_from_utf8
174
175 =item bytes_to_utf8
176
177 =item utf8_to_bytes
178
179 =item There is an C<installhtml> target in the Makefile.
180
181 =item Unicode in Perl on EBCDIC
182
183 See also: L<perlre/"Special Backtracking Control Verbs">
184
185 =item Code expressions, conditional expressions, and independent expressions in regexes
186
187 =item gv_try_downgrade
188
189 See also L<perlintern>
190
191 =item Experimental Support for Sun Studio Compilers for Linux OS
192
193 See also L<perllinux>
194
195 =back
196
197 =head2 Accepted features
198
199 These features were so wildly successful and played so well with others that
200 we decided to remove their experimental status and admit them as full, stable
201 features in the world of Perl, lavishing all the benefits and luxuries thereof.
202 They are also awarded +5 Stability and +3 Charisma.
203
204 =over 8
205
206 =item 64-bit support
207
208 Introduced in Perl 5.005
209
210 =item die accepts a reference
211
212 Introduced in Perl 5.005
213
214 =item DB module
215
216 Introduced in Perl 5.6.0
217
218 See also L<perldebug>, L<perldebtut>
219
220 =item Weak references
221
222 Introduced in Perl 5.6.0
223
224 =item Internal file glob
225
226 Introduced in Perl 5.6.0
227
228 =item fork() emulation
229
230 Introduced in Perl 5.6.1
231
232 See also L<perlfork>
233
234 =item -Dusemultiplicity -Duseithreads
235
236 Introduced in Perl 5.6.0
237
238 Accepted in Perl 5.8.0
239
240 =item Support for long doubles
241
242 Introduced in Perl 5.6.0
243
244 Accepted in Perl 5.8.1
245
246 =item The C<\N> regex character class
247
248 The C<\N> character class, not to be confused with the named character
249 sequence C<\N{NAME}>, denotes any non-newline character in a regular
250 expression.
251
252 Introduced in Perl 5.12
253
254 Exact version of acceptance unclear, but no later than Perl 5.18.
255
256 =item C<(?{code})> and C<(??{ code })>
257
258 Introduced in Perl 5.6.0
259
260 Accepted in Perl 5.20.0
261
262 See also L<perlre>
263
264 =item Lvalue subroutines
265
266 Introduced in Perl 5.6.0
267
268 Accepted in Perl 5.20.0
269
270 See also L<perlsub>
271
272 =item Backtracking control verbs
273
274 C<(*ACCEPT)>
275
276 Introduced in: Perl 5.10
277
278 Accepted in Perl 5.20.0
279
280 =item The <:pop> IO pseudolayer
281
282 See also L<perlrun>
283
284 Accepted in Perl 5.20.0
285
286 =back
287
288 =head2 Removed features
289
290 These features are no longer considered experimental and their functionality
291 has disappeared. It's your own fault if you wrote production programs using
292 these features after we explicitly told you not to (see L<perlpolicy>).
293
294 =over 8
295
296 =item 5.005-style threading
297
298 Introduced in Perl 5.005
299
300 Removed in Perl 5.10
301
302 =item perlcc
303
304 Introduced in Perl 5.005
305
306 Moved from Perl 5.9.0 to CPAN
307
308 =item The pseudo-hash data type
309
310 Introduced in Perl 5.6.0
311
312 Removed in Perl 5.9.0
313
314 =item GetOpt::Long Options can now take multiple values at once (experimental)
315
316 C<Getopt::Long> upgraded to version 2.35
317
318 Removed in Perl 5.8.8
319
320 =item Assertions
321
322 The C<-A> command line switch
323
324 Introduced in Perl 5.9.0
325
326 Removed in Perl 5.9.5
327
328 =item Test::Harness::Straps
329
330 Moved from Perl 5.10.1 to CPAN
331
332 =item C<legacy>
333
334 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
335
336 Introduced in: 5.11.2
337
338 Removed in: 5.11.3
339
340 =back
341
342 =head1 AUTHORS
343
344 brian d foy C<< <brian.d.foy@gmail.com> >>
345
346 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
347
348 =head1 COPYRIGHT
349
350 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
351
352 =head1 LICENSE
353
354 You can use and redistribute this document under the same terms as Perl
355 itself.
356
357 =cut