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