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