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 <:pop> IO pseudolayer
83 =item The <:win32> IO pseudolayer
91 =item internal functions with M flag
97 Introduced in Perl 5.13.7
99 =item internal API for C<%^H>
101 Introduced in Perl 5.13.7
103 See also C<cophh_> in L<perlapi>.
107 Introduced in Perl 5.18.0
109 =item av_create_and_push
111 =item av_create_and_unshift_one
113 =item av_create_and_unshift_one
115 =item cop_store_label
117 Introduced in Perl 5.16.0
119 =item PL_keyword_plugin
121 =item gv_fetchmethod_*_flags
123 Introduced in Perl 5.16.0
125 =item hv_iternext_flags
131 =item lex_grow_linestr
135 =item lex_peek_unichar
141 =item lex_read_unichar
161 =item PL_parser-E<gt>bufend
163 =item PL_parser-E<gt>bufptr
165 =item PL_parser-E<gt>linestart
167 =item PL_parser-E<gt>linestr
175 =item sv_utf8_downgrade
177 =item bytes_from_utf8
183 =item There is an C<installhtml> target in the Makefile.
185 =item Unicode in Perl on EBCDIC
187 See also: L<perlre/"Special Backtracking Control Verbs">
189 =item Code expressions, conditional expressions, and independent expressions in regexes
191 =item gv_try_downgrade
193 See also L<perlintern>
195 =item Experimental Support for Sun Studio Compilers for Linux OS
197 See also L<perllinux>
201 =head2 Accepted features
203 These features were so wildly successful and played so well with others that
204 we decided to remove their experimental status and admit them as full, stable
205 features in the world of Perl, lavishing all the benefits and luxuries thereof.
206 They are also awarded +5 Stability and +3 Charisma.
212 Introduced in Perl 5.005
214 =item die accepts a reference
216 Introduced in Perl 5.005
220 Introduced in Perl 5.6.0
222 See also L<perldebug>, L<perldebtut>
224 =item Weak references
226 Introduced in Perl 5.6.0
228 =item Internal file glob
230 Introduced in Perl 5.6.0
232 =item fork() emulation
234 Introduced in Perl 5.6.1
238 =item -Dusemultiplicity -Duseithreads
240 Introduced in Perl 5.6.0
242 Accepted in Perl 5.8.0
244 =item Support for long doubles
246 Introduced in Perl 5.6.0
248 Accepted in Perl 5.8.1
250 =item The C<\N> regex character class
252 The C<\N> character class, not to be confused with the named character
253 sequence C<\N{NAME}>, denotes any non-newline character in a regular
256 Introduced in Perl 5.12
258 Exact version of acceptance unclear, but no later than Perl 5.18.
260 =item C<(?{code})> and C<(??{ code })>
262 Introduced in Perl 5.6.0
264 Accepted in Perl 5.20.0
268 =item Lvalue subroutines
270 Introduced in Perl 5.6.0
272 Accepted in Perl 5.20.0
276 =item Backtracking control verbs
280 Introduced in: Perl 5.10
282 Accepted in Perl 5.20.0
286 =head2 Removed features
288 These features are no longer considered experimental and their functionality
289 has disappeared. It's your own fault if you wrote production programs using
290 these features after we explicitly told you not to (see L<perlpolicy>).
294 =item 5.005-style threading
296 Introduced in Perl 5.005
302 Introduced in Perl 5.005
304 Moved from Perl 5.9.0 to CPAN
306 =item The pseudo-hash data type
308 Introduced in Perl 5.6.0
310 Removed in Perl 5.9.0
312 =item GetOpt::Long Options can now take multiple values at once (experimental)
314 C<Getopt::Long> upgraded to version 2.35
316 Removed in Perl 5.8.8
320 The C<-A> command line switch
322 Introduced in Perl 5.9.0
324 Removed in Perl 5.9.5
326 =item Test::Harness::Straps
328 Moved from Perl 5.10.1 to CPAN
332 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
334 Introduced in: 5.11.2
342 brian d foy C<< <brian.d.foy@gmail.com> >>
344 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
348 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
352 You can use and redistribute this document under the same terms as Perl