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 The ticket for this feature is
26 L<[perl #119313]|https://rt.perl.org/rt3/Ticket/Display.html?id=119313>.
28 =item Smart match (C<~~>)
30 Introduced in Perl 5.10.0
32 Modified in Perl 5.10.1, 5.12.0
34 Using this feature triggers warnings in the category
35 C<experimental::smartmatch>.
37 The ticket for this feature is
38 L<[perl #119317]|https://rt.perl.org/rt3/Ticket/Display.html?id=119317>.
42 Introduced in Perl 5.10.0
44 Using this feature triggers warnings in the category
45 C<experimental::lexical_topic>.
47 The ticket for this feature is
48 L<[perl #119315]|https://rt.perl.org/rt3/Ticket/Display.html?id=119315>.
50 =item Pluggable keywords
52 The ticket for this feature is
53 L<[perl #119455]|https://rt.perl.org/rt3/Ticket/Display.html?id=119455>.
55 See L<perlapi/PL_keyword_plugin> for the mechanism.
57 Introduced in: Perl 5.11.2
59 =item Array and hash container functions accept references
61 Introduced in Perl 5.14.0
63 The ticket for this feature is
64 L<[perl #119437]|https://rt.perl.org/rt3/Ticket/Display.html?id=119437>.
66 =item Lexical subroutines
68 Introduced in: Perl 5.18
70 See also: L<perlsub/Lexical Subroutines>
72 Using this feature triggers warnings in the category
73 C<experimental::lexical_subs>.
75 The ticket for this feature is
76 L<[perl #120085]|https://rt.perl.org/rt3/Ticket/Display.html?id=120085>.
78 =item Regular Expression Set Operations
80 Introduced in: Perl 5.18
82 The ticket for this feature is
83 L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>.
85 See also: L<perlrecharclass/Extended Bracketed Character Classes>
87 Using this feature triggers warnings in the category
88 C<experimental::regex_sets>.
90 =item Subroutine signatures
92 Introduced in Perl 5.20.0
94 Using this feature triggers warnings in the category
95 C<experimental::signatures>.
97 The ticket for this feature is
98 L<[perl #121481]|https://rt.perl.org/Ticket/Display.html?id=121481>.
100 =item Aliasing via reference
102 Introduced in Perl 5.22.0
104 Using this feature triggers warnings in the category
105 C<experimental::refaliasing>.
107 The ticket for this feature is
108 L<[perl #122947]|https://rt.perl.org/rt3/Ticket/Display.html?id=122947>.
110 See also: L<perlref/Assigning to References>
112 =item The "const" attribute
114 Introduced in Perl 5.22.0
116 Using this feature triggers warnings in the category
117 C<experimental::const_attr>.
119 The ticket for this feature is
120 L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
122 See also: L<perlsub/Constant Functions>
124 =item use re 'strict';
126 Introduced in Perl 5.22.0
128 Using this feature triggers warnings in the category
129 C<experimental::re_strict>.
131 See L<re/'strict' mode>
133 =item String- and number-specific bitwise operators
135 Introduced in: Perl 5.22.0
137 See also: L<perlop/Bitwise String Operators>
139 Using this feature triggers warnings in the category
140 C<experimental::bitwise>.
142 The ticket for this feature is
143 L<[perl #123707]|https://rt.perl.org/rt3/Ticket/Display.html?id=123707>.
145 =item The <:win32> IO pseudolayer
147 The ticket for this feature is
148 L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
152 =item There is an C<installhtml> target in the Makefile.
154 The ticket for this feature is
155 L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
157 =item Unicode in Perl on EBCDIC
161 =head2 Accepted features
163 These features were so wildly successful and played so well with others that
164 we decided to remove their experimental status and admit them as full, stable
165 features in the world of Perl, lavishing all the benefits and luxuries thereof.
166 They are also awarded +5 Stability and +3 Charisma.
172 Introduced in Perl 5.005
174 =item die accepts a reference
176 Introduced in Perl 5.005
180 Introduced in Perl 5.6.0
182 See also L<perldebug>, L<perldebtut>
184 =item Weak references
186 Introduced in Perl 5.6.0
188 =item Internal file glob
190 Introduced in Perl 5.6.0
192 =item fork() emulation
194 Introduced in Perl 5.6.1
198 =item -Dusemultiplicity -Duseithreads
200 Introduced in Perl 5.6.0
202 Accepted in Perl 5.8.0
204 =item Support for long doubles
206 Introduced in Perl 5.6.0
208 Accepted in Perl 5.8.1
210 =item The C<\N> regex character class
212 The C<\N> character class, not to be confused with the named character
213 sequence C<\N{NAME}>, denotes any non-newline character in a regular
216 Introduced in Perl 5.12
218 Exact version of acceptance unclear, but no later than Perl 5.18.
220 =item C<(?{code})> and C<(??{ code })>
222 Introduced in Perl 5.6.0
224 Accepted in Perl 5.20.0
228 =item Linux abstract Unix domain sockets
230 Introduced in Perl 5.9.2
232 Accepted before Perl 5.20.0. The Socket library is now primarily maintained
233 on CPAN, rather than in the perl core.
237 =item Lvalue subroutines
239 Introduced in Perl 5.6.0
241 Accepted in Perl 5.20.0
245 =item Backtracking control verbs
249 Introduced in: Perl 5.10
251 Accepted in Perl 5.20.0
253 =item The <:pop> IO pseudolayer
257 Accepted in Perl 5.20.0
259 =item C<\s> in regexp matches vertical tab
261 Accepted in Perl 5.22.0
263 =item Postfix dereference syntax
265 Introduced in Perl 5.20.0
267 Accepted in Perl 5.24.0
271 =head2 Removed features
273 These features are no longer considered experimental and their functionality
274 has disappeared. It's your own fault if you wrote production programs using
275 these features after we explicitly told you not to (see L<perlpolicy>).
279 =item 5.005-style threading
281 Introduced in Perl 5.005
287 Introduced in Perl 5.005
289 Moved from Perl 5.9.0 to CPAN
291 =item The pseudo-hash data type
293 Introduced in Perl 5.6.0
295 Removed in Perl 5.9.0
297 =item GetOpt::Long Options can now take multiple values at once (experimental)
299 C<Getopt::Long> upgraded to version 2.35
301 Removed in Perl 5.8.8
305 The C<-A> command line switch
307 Introduced in Perl 5.9.0
309 Removed in Perl 5.9.5
311 =item Test::Harness::Straps
313 Moved from Perl 5.10.1 to CPAN
317 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
319 Introduced in: 5.11.2
327 For a complete list of features check L<feature>.
331 brian d foy C<< <brian.d.foy@gmail.com> >>
333 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
337 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
341 You can use and redistribute this document under the same terms as Perl