This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlexperiment: (?{}) and (??{}) are not experimental
[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
51c34fa4
RS
19=item Lvalue subroutines
20
21Introduced in Perl 5.6.0
22
23See also L<perlsub>
24
42e73e1c 25=item C<our> can now have an experimental optional attribute C<unique>
26
27Introduced in Perl 5.8.0
28
d1558b3e
FC
29Deprecated in Perl 5.10.0
30
42e73e1c 31=item Linux abstract Unix domain sockets
32
33Introduced in Perl 5.9.2
34
35See also L<Socket>
36
51c34fa4
RS
37=item Smart match (C<~~>)
38
39Introduced in Perl 5.10.0
40
41Modified in Perl 5.10.1, 5.12.0
42
43Using this feature triggers warnings in the category
44C<experimental::smartmatch>.
45
46=item Lexical C<$_>
47
48Introduced in Perl 5.10.0
49
50Using this feature triggers warnings in the category
51C<experimental::lexical_topic>.
52
51c34fa4
RS
53=item Pluggable keywords
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
63=item Lexical subroutines
64
65Introduced in: Perl 5.18
66
67See also: L<perlsub/Lexical Subroutines>
68
69Using this feature triggers warnings in the category
70C<experimental::lexical_subs>.
71
72=item Regular Expression Set Operations
73
74Introduced in: Perl 5.18
75
76See also: L<perlrecharclass/Extended Bracketed Character Classes>
77
78Using this feature triggers warnings in the category
79C<experimental::regex_sets>.
80
3602d7b6
RS
81=item C<\s> in regexp matches vertical tab
82
83Introduced in Perl 5.18
51c34fa4 84
706c19b7 85=item The <:pop> IO pseudolayer
42e73e1c 86
87See also L<perlrun>
88
706c19b7 89=item The <:win32> IO pseudolayer
42e73e1c 90
91See also L<perlrun>
92
42e73e1c 93=item MLDBM
94
95See also L<perldsc>
96
97=item internal functions with M flag
98
99See also L<perlguts>
100
101=item lex_start API
102
103Introduced in Perl 5.13.7
104
fe8d2675 105=item internal API for C<%^H>
42e73e1c 106
107Introduced in Perl 5.13.7
108
109See also C<cophh_> in L<perlapi>.
110
fe8d2675
AT
111=item alloccopstash
112
113Introduced in Perl 5.18.0
114
42e73e1c 115=item av_create_and_push
116
117=item av_create_and_unshift_one
118
119=item av_create_and_unshift_one
120
fe8d2675
AT
121=item cop_store_label
122
123Introduced in Perl 5.16.0
124
42e73e1c 125=item PL_keyword_plugin
126
fe8d2675
AT
127=item gv_fetchmethod_*_flags
128
129Introduced in Perl 5.16.0
130
42e73e1c 131=item hv_iternext_flags
132
133=item lex_bufutf8
134
135=item lex_discard_to
136
137=item lex_grow_linestr
138
139=item lex_next_chunk
140
141=item lex_peek_unichar
142
143=item lex_read_space
144
145=item lex_read_to
146
147=item lex_read_unichar
148
149=item lex_stuff_pv
150
151=item lex_stuff_pvn
152
153=item lex_stuff_pvs
154
155=item lex_stuff_sv
156
157=item lex_unstuff
158
fe8d2675
AT
159=item op_scope
160
161=item op_lvalue
162
42e73e1c 163=item parse_fullstmt
164
165=item parse_stmtseq
166
167=item PL_parser-E<gt>bufend
168
169=item PL_parser-E<gt>bufptr
170
171=item PL_parser-E<gt>linestart
172
173=item PL_parser-E<gt>linestr
174
175=item Perl_signbit
176
177=item pad_findmy
178
179=item sv_utf8_decode
180
181=item sv_utf8_downgrade
182
183=item bytes_from_utf8
184
185=item bytes_to_utf8
186
187=item utf8_to_bytes
188
42e73e1c 189=item There is an C<installhtml> target in the Makefile.
190
191=item Unicode in Perl on EBCDIC
192
42e73e1c 193See also: L<perlre/"Special Backtracking Control Verbs">
194
195=item Code expressions, conditional expressions, and independent expressions in regexes
196
42e73e1c 197=item gv_try_downgrade
198
199See also L<perlintern>
200
201=item Experimental Support for Sun Studio Compilers for Linux OS
202
203See also L<perllinux>
204
42e73e1c 205=back
206
207=head2 Accepted features
208
209These features were so wildly successful and played so well with others that
210we decided to remove their experimental status and admit them as full, stable
51c34fa4 211features in the world of Perl, lavishing all the benefits and luxuries thereof.
42e73e1c 212They are also awarded +5 Stability and +3 Charisma.
213
214=over 8
215
51c34fa4 216=item 64-bit support
42e73e1c 217
51c34fa4 218Introduced in Perl 5.005
fe8d2675 219
51c34fa4 220=item die accepts a reference
fe8d2675 221
51c34fa4 222Introduced in Perl 5.005
fe8d2675
AT
223
224=item DB module
225
226Introduced in Perl 5.6.0
227
228See also L<perldebug>, L<perldebtut>
229
230=item Weak references
231
232Introduced in Perl 5.6.0
233
234=item Internal file glob
235
236Introduced in Perl 5.6.0
237
51c34fa4 238=item fork() emulation
fe8d2675 239
51c34fa4 240Introduced in Perl 5.6.1
fe8d2675 241
51c34fa4 242See also L<perlfork>
fe8d2675 243
3a0e7915
RS
244=item -Dusemultiplicity -Duseithreads
245
246Introduced in Perl 5.6.0
247
248Accepted in Perl 5.8.0
249
36d2f798
RS
250=item Support for long doubles
251
252Introduced in Perl 5.6.0
253
254Accepted in Perl 5.8.1
255
51c34fa4
RS
256=item The C<\N> regex character class
257
258The C<\N> character class, not to be confused with the named character
259sequence C<\N{NAME}>, denotes any non-newline character in a regular
260expression.
261
3cb3bd66
RS
262Introduced in Perl 5.12
263
264Exact version of acceptance unclear, but no later than Perl 5.18.
fe8d2675 265
83f32aba
RS
266=item C<(?{code})> and C<(??{ code })>
267
268Introduced in Perl 5.6.0
269
270Accepted in Perl 5.20.0
271
272See also L<perlre>
273
b387afbc
RS
274=item Backtracking control verbs
275
276C<(*ACCEPT)>
277
278Introduced in: Perl 5.10
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