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