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