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 Pluggable keywords
61 See L<perlapi/PL_keyword_plugin> for the mechanism.
63 Introduced in: Perl 5.11.2
65 =item Array and hash container functions accept references
67 Introduced in Perl 5.14.0
69 =item Lexical subroutines
71 Introduced in: Perl 5.18
73 See also: L<perlsub/Lexical Subroutines>
75 Using this feature triggers warnings in the category
76 C<experimental::lexical_subs>.
78 =item Regular Expression Set Operations
80 Introduced in: Perl 5.18
82 See also: L<perlrecharclass/Extended Bracketed Character Classes>
84 Using this feature triggers warnings in the category
85 C<experimental::regex_sets>.
87 =item C<\s> in regexp matches vertical tab
89 Introduced in Perl 5.18
91 =item The <:pop> IO pseudolayer
95 =item The <:win32> IO pseudolayer
103 =item internal functions with M flag
109 Introduced in Perl 5.13.7
111 =item internal API for C<%^H>
113 Introduced in Perl 5.13.7
115 See also C<cophh_> in L<perlapi>.
119 Introduced in Perl 5.18.0
121 =item av_create_and_push
123 =item av_create_and_unshift_one
125 =item av_create_and_unshift_one
127 =item cop_store_label
129 Introduced in Perl 5.16.0
131 =item PL_keyword_plugin
133 =item gv_fetchmethod_*_flags
135 Introduced in Perl 5.16.0
137 =item hv_iternext_flags
143 =item lex_grow_linestr
147 =item lex_peek_unichar
153 =item lex_read_unichar
173 =item PL_parser-E<gt>bufend
175 =item PL_parser-E<gt>bufptr
177 =item PL_parser-E<gt>linestart
179 =item PL_parser-E<gt>linestr
187 =item sv_utf8_downgrade
189 =item bytes_from_utf8
195 =item There is an C<installhtml> target in the Makefile.
197 =item Unicode in Perl on EBCDIC
199 See also: L<perlre/"Special Backtracking Control Verbs">
201 =item Code expressions, conditional expressions, and independent expressions in regexes
203 =item gv_try_downgrade
205 See also L<perlintern>
207 =item Experimental Support for Sun Studio Compilers for Linux OS
209 See also L<perllinux>
213 =head2 Accepted features
215 These features were so wildly successful and played so well with others that
216 we decided to remove their experimental status and admit them as full, stable
217 features in the world of Perl, lavishing all the benefits and luxuries thereof.
218 They are also awarded +5 Stability and +3 Charisma.
224 Introduced in Perl 5.005
226 =item die accepts a reference
228 Introduced in Perl 5.005
232 Introduced in Perl 5.6.0
234 See also L<perldebug>, L<perldebtut>
236 =item Weak references
238 Introduced in Perl 5.6.0
240 =item Internal file glob
242 Introduced in Perl 5.6.0
244 =item fork() emulation
246 Introduced in Perl 5.6.1
250 =item -Dusemultiplicity -Duseithreads
252 Introduced in Perl 5.6.0
254 Accepted in Perl 5.8.0
256 =item Support for long doubles
258 Introduced in Perl 5.6.0
260 Accepted in Perl 5.8.1
262 =item The C<\N> regex character class
264 The C<\N> character class, not to be confused with the named character
265 sequence C<\N{NAME}>, denotes any non-newline character in a regular
268 Introduced in Perl 5.12
270 Exact version of acceptance unclear, but no later than Perl 5.18.
272 =item Backtracking control verbs
276 Introduced in: Perl 5.10
278 Accepted in Perl 5.20.0
282 =head2 Removed features
284 These features are no longer considered experimental and their functionality
285 has disappeared. It's your own fault if you wrote production programs using
286 these features after we explicitly told you not to (see L<perlpolicy>).
290 =item 5.005-style threading
292 Introduced in Perl 5.005
298 Introduced in Perl 5.005
300 Moved from Perl 5.9.0 to CPAN
302 =item The pseudo-hash data type
304 Introduced in Perl 5.6.0
306 Removed in Perl 5.9.0
308 =item GetOpt::Long Options can now take multiple values at once (experimental)
310 C<Getopt::Long> upgraded to version 2.35
312 Removed in Perl 5.8.8
316 The C<-A> command line switch
318 Introduced in Perl 5.9.0
320 Removed in Perl 5.9.5
322 =item Test::Harness::Straps
324 Moved from Perl 5.10.1 to CPAN
328 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
330 Introduced in: 5.11.2
338 brian d foy C<< <brian.d.foy@gmail.com> >>
340 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
344 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
348 You can use and redistribute this document under the same terms as Perl