3 perlexperiment - A listing of experimental features in Perl
7 This document lists the current and past experimental features in the perl
8 core. Although all of these are documented with their appropriate topics,
9 this succinct listing gives you an overview and basic facts about their
12 So far we've merely tried to find and list the experimental features and infer
13 their inception, versions, etc. There's a lot of speculation here.
15 =head2 Current experiments
19 =item C<our> can now have an experimental optional attribute C<unique>
21 Introduced in Perl 5.8.0
23 Deprecated in Perl 5.10.0
25 =item Smart match (C<~~>)
27 Introduced in Perl 5.10.0
29 Modified in Perl 5.10.1, 5.12.0
31 Using this feature triggers warnings in the category
32 C<experimental::smartmatch>.
36 Introduced in Perl 5.10.0
38 Using this feature triggers warnings in the category
39 C<experimental::lexical_topic>.
41 =item Pluggable keywords
43 See L<perlapi/PL_keyword_plugin> for the mechanism.
45 Introduced in: Perl 5.11.2
47 =item Array and hash container functions accept references
49 Introduced in Perl 5.14.0
51 =item Lexical subroutines
53 Introduced in: Perl 5.18
55 See also: L<perlsub/Lexical Subroutines>
57 Using this feature triggers warnings in the category
58 C<experimental::lexical_subs>.
60 =item Regular Expression Set Operations
62 Introduced in: Perl 5.18
64 See also: L<perlrecharclass/Extended Bracketed Character Classes>
66 Using this feature triggers warnings in the category
67 C<experimental::regex_sets>.
69 =item C<\s> in regexp matches vertical tab
71 Introduced in Perl 5.18
73 =item The <:win32> IO pseudolayer
79 Introduced in Perl 5.13.7
81 =item internal API for C<%^H>
83 Introduced in Perl 5.13.7
85 See also C<cophh_> in L<perlapi>.
89 Introduced in Perl 5.18.0
91 =item av_create_and_push
93 =item av_create_and_unshift_one
95 =item av_create_and_unshift_one
99 Introduced in Perl 5.16.0
101 =item PL_keyword_plugin
103 =item gv_fetchmethod_*_flags
105 Introduced in Perl 5.16.0
107 =item hv_iternext_flags
113 =item lex_grow_linestr
117 =item lex_peek_unichar
123 =item lex_read_unichar
143 =item PL_parser-E<gt>bufend
145 =item PL_parser-E<gt>bufptr
147 =item PL_parser-E<gt>linestart
149 =item PL_parser-E<gt>linestr
157 =item sv_utf8_downgrade
159 =item bytes_from_utf8
165 =item There is an C<installhtml> target in the Makefile.
167 =item Unicode in Perl on EBCDIC
169 See also: L<perlre/"Special Backtracking Control Verbs">
171 =item Code expressions, conditional expressions, and independent expressions in regexes
173 =item gv_try_downgrade
175 See also L<perlintern>
179 =head2 Accepted features
181 These features were so wildly successful and played so well with others that
182 we decided to remove their experimental status and admit them as full, stable
183 features in the world of Perl, lavishing all the benefits and luxuries thereof.
184 They are also awarded +5 Stability and +3 Charisma.
190 Introduced in Perl 5.005
192 =item die accepts a reference
194 Introduced in Perl 5.005
198 Introduced in Perl 5.6.0
200 See also L<perldebug>, L<perldebtut>
202 =item Weak references
204 Introduced in Perl 5.6.0
206 =item Internal file glob
208 Introduced in Perl 5.6.0
210 =item fork() emulation
212 Introduced in Perl 5.6.1
216 =item -Dusemultiplicity -Duseithreads
218 Introduced in Perl 5.6.0
220 Accepted in Perl 5.8.0
222 =item Support for long doubles
224 Introduced in Perl 5.6.0
226 Accepted in Perl 5.8.1
228 =item The C<\N> regex character class
230 The C<\N> character class, not to be confused with the named character
231 sequence C<\N{NAME}>, denotes any non-newline character in a regular
234 Introduced in Perl 5.12
236 Exact version of acceptance unclear, but no later than Perl 5.18.
238 =item C<(?{code})> and C<(??{ code })>
240 Introduced in Perl 5.6.0
242 Accepted in Perl 5.20.0
246 =item Linux abstract Unix domain sockets
248 Introduced in Perl 5.9.2
250 Accepted before Perl 5.20.0. The Socket library is now primarily maintained
251 on CPAN, rather than in the perl core.
255 =item Lvalue subroutines
257 Introduced in Perl 5.6.0
259 Accepted in Perl 5.20.0
263 =item Backtracking control verbs
267 Introduced in: Perl 5.10
269 Accepted in Perl 5.20.0
271 =item The <:pop> IO pseudolayer
275 Accepted in Perl 5.20.0
279 =head2 Removed features
281 These features are no longer considered experimental and their functionality
282 has disappeared. It's your own fault if you wrote production programs using
283 these features after we explicitly told you not to (see L<perlpolicy>).
287 =item 5.005-style threading
289 Introduced in Perl 5.005
295 Introduced in Perl 5.005
297 Moved from Perl 5.9.0 to CPAN
299 =item The pseudo-hash data type
301 Introduced in Perl 5.6.0
303 Removed in Perl 5.9.0
305 =item GetOpt::Long Options can now take multiple values at once (experimental)
307 C<Getopt::Long> upgraded to version 2.35
309 Removed in Perl 5.8.8
313 The C<-A> command line switch
315 Introduced in Perl 5.9.0
317 Removed in Perl 5.9.5
319 =item Test::Harness::Straps
321 Moved from Perl 5.10.1 to CPAN
325 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
327 Introduced in: 5.11.2
335 brian d foy C<< <brian.d.foy@gmail.com> >>
337 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
341 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
345 You can use and redistribute this document under the same terms as Perl