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<(?{code})> and C<(??{ code })>
21 Introduced in Perl 5.6.0
25 =item Lvalue subroutines
27 Introduced in Perl 5.6.0
31 =item C<our> can now have an experimental optional attribute C<unique>
33 Introduced in Perl 5.8.0
35 Deprecated in Perl 5.10.0
37 =item Linux abstract Unix domain sockets
39 Introduced in Perl 5.9.2
43 =item Smart match (C<~~>)
45 Introduced in Perl 5.10.0
47 Modified in Perl 5.10.1, 5.12.0
49 Using this feature triggers warnings in the category
50 C<experimental::smartmatch>.
54 Introduced in Perl 5.10.0
56 Using this feature triggers warnings in the category
57 C<experimental::lexical_topic>.
59 =item Backtracking control verbs
63 Introduced in: Perl 5.10
65 =item Pluggable keywords
67 See L<perlapi/PL_keyword_plugin> for the mechanism.
69 Introduced in: Perl 5.11.2
71 =item Array and hash container functions accept references
73 Introduced in Perl 5.14.0
75 =item Lexical subroutines
77 Introduced in: Perl 5.18
79 See also: L<perlsub/Lexical Subroutines>
81 Using this feature triggers warnings in the category
82 C<experimental::lexical_subs>.
84 =item Regular Expression Set Operations
86 Introduced in: Perl 5.18
88 See also: L<perlrecharclass/Extended Bracketed Character Classes>
90 Using this feature triggers warnings in the category
91 C<experimental::regex_sets>.
93 =item C<\s> in regexp matches vertical tab
95 Introduced in Perl 5.18
97 =item The <:pop> IO pseudolayer
101 =item The <:win32> IO pseudolayer
109 =item internal functions with M flag
115 Introduced in Perl 5.13.7
117 =item internal API for C<%^H>
119 Introduced in Perl 5.13.7
121 See also C<cophh_> in L<perlapi>.
125 Introduced in Perl 5.18.0
127 =item av_create_and_push
129 =item av_create_and_unshift_one
131 =item av_create_and_unshift_one
133 =item cop_store_label
135 Introduced in Perl 5.16.0
137 =item PL_keyword_plugin
139 =item gv_fetchmethod_*_flags
141 Introduced in Perl 5.16.0
143 =item hv_iternext_flags
149 =item lex_grow_linestr
153 =item lex_peek_unichar
159 =item lex_read_unichar
179 =item PL_parser-E<gt>bufend
181 =item PL_parser-E<gt>bufptr
183 =item PL_parser-E<gt>linestart
185 =item PL_parser-E<gt>linestr
193 =item sv_utf8_downgrade
195 =item bytes_from_utf8
201 =item There is an C<installhtml> target in the Makefile.
203 =item Unicode in Perl on EBCDIC
205 See also: L<perlre/"Special Backtracking Control Verbs">
207 =item Code expressions, conditional expressions, and independent expressions in regexes
209 =item gv_try_downgrade
211 See also L<perlintern>
213 =item Experimental Support for Sun Studio Compilers for Linux OS
215 See also L<perllinux>
219 =head2 Accepted features
221 These features were so wildly successful and played so well with others that
222 we decided to remove their experimental status and admit them as full, stable
223 features in the world of Perl, lavishing all the benefits and luxuries thereof.
224 They are also awarded +5 Stability and +3 Charisma.
230 Introduced in Perl 5.005
232 =item die accepts a reference
234 Introduced in Perl 5.005
238 Introduced in Perl 5.6.0
240 See also L<perldebug>, L<perldebtut>
242 =item Weak references
244 Introduced in Perl 5.6.0
246 =item Internal file glob
248 Introduced in Perl 5.6.0
250 =item fork() emulation
252 Introduced in Perl 5.6.1
256 =item -Dusemultiplicity -Duseithreads
258 Introduced in Perl 5.6.0
260 Accepted in Perl 5.8.0
262 =item Support for long doubles
264 Introduced in Perl 5.6.0
266 Accepted in Perl 5.8.1
268 =item The C<\N> regex character class
270 The C<\N> character class, not to be confused with the named character
271 sequence C<\N{NAME}>, denotes any non-newline character in a regular
274 Introduced in Perl 5.12
276 Exact version of acceptance unclear, but no later than Perl 5.18.
280 =head2 Removed features
282 These features are no longer considered experimental and their functionality
283 has disappeared. It's your own fault if you wrote production programs using
284 these features after we explicitly told you not to (see L<perlpolicy>).
288 =item 5.005-style threading
290 Introduced in Perl 5.005
296 Introduced in Perl 5.005
298 Moved from Perl 5.9.0 to CPAN
300 =item The pseudo-hash data type
302 Introduced in Perl 5.6.0
304 Removed in Perl 5.9.0
306 =item GetOpt::Long Options can now take multiple values at once (experimental)
308 C<Getopt::Long> upgraded to version 2.35
310 Removed in Perl 5.8.8
314 The C<-A> command line switch
316 Introduced in Perl 5.9.0
318 Removed in Perl 5.9.5
320 =item Test::Harness::Straps
322 Moved from Perl 5.10.1 to CPAN
326 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
328 Introduced in: 5.11.2
336 brian d foy C<< <brian.d.foy@gmail.com> >>
338 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
342 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
346 You can use and redistribute this document under the same terms as Perl