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
77 =item internal functions with M flag
83 Introduced in Perl 5.13.7
85 =item internal API for C<%^H>
87 Introduced in Perl 5.13.7
89 See also C<cophh_> in L<perlapi>.
93 Introduced in Perl 5.18.0
95 =item av_create_and_push
97 =item av_create_and_unshift_one
99 =item av_create_and_unshift_one
101 =item cop_store_label
103 Introduced in Perl 5.16.0
105 =item PL_keyword_plugin
107 =item gv_fetchmethod_*_flags
109 Introduced in Perl 5.16.0
111 =item hv_iternext_flags
117 =item lex_grow_linestr
121 =item lex_peek_unichar
127 =item lex_read_unichar
147 =item PL_parser-E<gt>bufend
149 =item PL_parser-E<gt>bufptr
151 =item PL_parser-E<gt>linestart
153 =item PL_parser-E<gt>linestr
161 =item sv_utf8_downgrade
163 =item bytes_from_utf8
169 =item There is an C<installhtml> target in the Makefile.
171 =item Unicode in Perl on EBCDIC
173 See also: L<perlre/"Special Backtracking Control Verbs">
175 =item Code expressions, conditional expressions, and independent expressions in regexes
177 =item gv_try_downgrade
179 See also L<perlintern>
181 =item Experimental Support for Sun Studio Compilers for Linux OS
183 See also L<perllinux>
187 =head2 Accepted features
189 These features were so wildly successful and played so well with others that
190 we decided to remove their experimental status and admit them as full, stable
191 features in the world of Perl, lavishing all the benefits and luxuries thereof.
192 They are also awarded +5 Stability and +3 Charisma.
198 Introduced in Perl 5.005
200 =item die accepts a reference
202 Introduced in Perl 5.005
206 Introduced in Perl 5.6.0
208 See also L<perldebug>, L<perldebtut>
210 =item Weak references
212 Introduced in Perl 5.6.0
214 =item Internal file glob
216 Introduced in Perl 5.6.0
218 =item fork() emulation
220 Introduced in Perl 5.6.1
224 =item -Dusemultiplicity -Duseithreads
226 Introduced in Perl 5.6.0
228 Accepted in Perl 5.8.0
230 =item Support for long doubles
232 Introduced in Perl 5.6.0
234 Accepted in Perl 5.8.1
236 =item The C<\N> regex character class
238 The C<\N> character class, not to be confused with the named character
239 sequence C<\N{NAME}>, denotes any non-newline character in a regular
242 Introduced in Perl 5.12
244 Exact version of acceptance unclear, but no later than Perl 5.18.
246 =item C<(?{code})> and C<(??{ code })>
248 Introduced in Perl 5.6.0
250 Accepted in Perl 5.20.0
254 =item Linux abstract Unix domain sockets
256 Introduced in Perl 5.9.2
258 Accepted before Perl 5.20.0. The Socket library is now primarily maintained
259 on CPAN, rather than in the perl core.
263 =item Lvalue subroutines
265 Introduced in Perl 5.6.0
267 Accepted in Perl 5.20.0
271 =item Backtracking control verbs
275 Introduced in: Perl 5.10
277 Accepted in Perl 5.20.0
279 =item The <:pop> IO pseudolayer
283 Accepted in Perl 5.20.0
287 =head2 Removed features
289 These features are no longer considered experimental and their functionality
290 has disappeared. It's your own fault if you wrote production programs using
291 these features after we explicitly told you not to (see L<perlpolicy>).
295 =item 5.005-style threading
297 Introduced in Perl 5.005
303 Introduced in Perl 5.005
305 Moved from Perl 5.9.0 to CPAN
307 =item The pseudo-hash data type
309 Introduced in Perl 5.6.0
311 Removed in Perl 5.9.0
313 =item GetOpt::Long Options can now take multiple values at once (experimental)
315 C<Getopt::Long> upgraded to version 2.35
317 Removed in Perl 5.8.8
321 The C<-A> command line switch
323 Introduced in Perl 5.9.0
325 Removed in Perl 5.9.5
327 =item Test::Harness::Straps
329 Moved from Perl 5.10.1 to CPAN
333 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
335 Introduced in: 5.11.2
343 brian d foy C<< <brian.d.foy@gmail.com> >>
345 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
349 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
353 You can use and redistribute this document under the same terms as Perl