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