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 Linux abstract Unix domain sockets
27 Introduced in Perl 5.9.2
31 =item Smart match (C<~~>)
33 Introduced in Perl 5.10.0
35 Modified in Perl 5.10.1, 5.12.0
37 Using this feature triggers warnings in the category
38 C<experimental::smartmatch>.
42 Introduced in Perl 5.10.0
44 Using this feature triggers warnings in the category
45 C<experimental::lexical_topic>.
47 =item Pluggable keywords
49 See L<perlapi/PL_keyword_plugin> for the mechanism.
51 Introduced in: Perl 5.11.2
53 =item Array and hash container functions accept references
55 Introduced in Perl 5.14.0
57 =item Lexical subroutines
59 Introduced in: Perl 5.18
61 See also: L<perlsub/Lexical Subroutines>
63 Using this feature triggers warnings in the category
64 C<experimental::lexical_subs>.
66 =item Regular Expression Set Operations
68 Introduced in: Perl 5.18
70 See also: L<perlrecharclass/Extended Bracketed Character Classes>
72 Using this feature triggers warnings in the category
73 C<experimental::regex_sets>.
75 =item C<\s> in regexp matches vertical tab
77 Introduced in Perl 5.18
79 =item The <:win32> IO pseudolayer
87 =item internal functions with M flag
93 Introduced in Perl 5.13.7
95 =item internal API for C<%^H>
97 Introduced in Perl 5.13.7
99 See also C<cophh_> in L<perlapi>.
103 Introduced in Perl 5.18.0
105 =item av_create_and_push
107 =item av_create_and_unshift_one
109 =item av_create_and_unshift_one
111 =item cop_store_label
113 Introduced in Perl 5.16.0
115 =item PL_keyword_plugin
117 =item gv_fetchmethod_*_flags
119 Introduced in Perl 5.16.0
121 =item hv_iternext_flags
127 =item lex_grow_linestr
131 =item lex_peek_unichar
137 =item lex_read_unichar
157 =item PL_parser-E<gt>bufend
159 =item PL_parser-E<gt>bufptr
161 =item PL_parser-E<gt>linestart
163 =item PL_parser-E<gt>linestr
171 =item sv_utf8_downgrade
173 =item bytes_from_utf8
179 =item There is an C<installhtml> target in the Makefile.
181 =item Unicode in Perl on EBCDIC
183 See also: L<perlre/"Special Backtracking Control Verbs">
185 =item Code expressions, conditional expressions, and independent expressions in regexes
187 =item gv_try_downgrade
189 See also L<perlintern>
191 =item Experimental Support for Sun Studio Compilers for Linux OS
193 See also L<perllinux>
197 =head2 Accepted features
199 These features were so wildly successful and played so well with others that
200 we decided to remove their experimental status and admit them as full, stable
201 features in the world of Perl, lavishing all the benefits and luxuries thereof.
202 They are also awarded +5 Stability and +3 Charisma.
208 Introduced in Perl 5.005
210 =item die accepts a reference
212 Introduced in Perl 5.005
216 Introduced in Perl 5.6.0
218 See also L<perldebug>, L<perldebtut>
220 =item Weak references
222 Introduced in Perl 5.6.0
224 =item Internal file glob
226 Introduced in Perl 5.6.0
228 =item fork() emulation
230 Introduced in Perl 5.6.1
234 =item -Dusemultiplicity -Duseithreads
236 Introduced in Perl 5.6.0
238 Accepted in Perl 5.8.0
240 =item Support for long doubles
242 Introduced in Perl 5.6.0
244 Accepted in Perl 5.8.1
246 =item The C<\N> regex character class
248 The C<\N> character class, not to be confused with the named character
249 sequence C<\N{NAME}>, denotes any non-newline character in a regular
252 Introduced in Perl 5.12
254 Exact version of acceptance unclear, but no later than Perl 5.18.
256 =item C<(?{code})> and C<(??{ code })>
258 Introduced in Perl 5.6.0
260 Accepted in Perl 5.20.0
264 =item Lvalue subroutines
266 Introduced in Perl 5.6.0
268 Accepted in Perl 5.20.0
272 =item Backtracking control verbs
276 Introduced in: Perl 5.10
278 Accepted in Perl 5.20.0
280 =item The <:pop> IO pseudolayer
284 Accepted in Perl 5.20.0
288 =head2 Removed features
290 These features are no longer considered experimental and their functionality
291 has disappeared. It's your own fault if you wrote production programs using
292 these features after we explicitly told you not to (see L<perlpolicy>).
296 =item 5.005-style threading
298 Introduced in Perl 5.005
304 Introduced in Perl 5.005
306 Moved from Perl 5.9.0 to CPAN
308 =item The pseudo-hash data type
310 Introduced in Perl 5.6.0
312 Removed in Perl 5.9.0
314 =item GetOpt::Long Options can now take multiple values at once (experimental)
316 C<Getopt::Long> upgraded to version 2.35
318 Removed in Perl 5.8.8
322 The C<-A> command line switch
324 Introduced in Perl 5.9.0
326 Removed in Perl 5.9.5
328 =item Test::Harness::Straps
330 Moved from Perl 5.10.1 to CPAN
334 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
336 Introduced in: 5.11.2
344 brian d foy C<< <brian.d.foy@gmail.com> >>
346 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
350 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
354 You can use and redistribute this document under the same terms as Perl