1=head1 NAME
2
3perlexperiment - A listing of experimental features in Perl
4
5=head1 DESCRIPTION
6
7This document lists the current and past experimental features in the perl
8core. Although all of these are documented with their appropriate topics,
9this succinct listing gives you an overview and basic facts about their
10status.
11
12So far we've merely tried to find and list the experimental features and infer
13their inception, versions, etc. There's a lot of speculation here.
14
15=head2 Current experiments
16
17=over 8
18
19=item C<our> can now have an experimental optional attribute C<unique>
20
21Introduced in Perl 5.8.0
22
23Deprecated in Perl 5.10.0
24
25The ticket for this feature is
26L<[perl #119313]|https://rt.perl.org/rt3/Ticket/Display.html?id=119313>.
27
28=item Smart match (C<~~>)
29
30Introduced in Perl 5.10.0
31
32Modified in Perl 5.10.1, 5.12.0
33
34Using this feature triggers warnings in the category
35C<experimental::smartmatch>.
36
37The ticket for this feature is
38L<[perl #119317]|https://rt.perl.org/rt3/Ticket/Display.html?id=119317>.
39
40=item Lexical C<$_>
41
42Introduced in Perl 5.10.0
43
44Using this feature triggers warnings in the category
45C<experimental::lexical_topic>.
46
47The ticket for this feature is
48L<[perl #119315]|https://rt.perl.org/rt3/Ticket/Display.html?id=119315>.
49
50=item Pluggable keywords
51
52The ticket for this feature is
53L<[perl #119455]|https://rt.perl.org/rt3/Ticket/Display.html?id=119455>.
54
55See L<perlapi/PL_keyword_plugin> for the mechanism.
56
57Introduced in: Perl 5.11.2
58
59=item Array and hash container functions accept references
60
61Introduced in Perl 5.14.0
62
63The ticket for this feature is
64L<[perl #119437]|https://rt.perl.org/rt3/Ticket/Display.html?id=119437>.
65
66=item Lexical subroutines
67
68Introduced in: Perl 5.18
69
70See also: L<perlsub/Lexical Subroutines>
71
72Using this feature triggers warnings in the category
73C<experimental::lexical_subs>.
74
75The ticket for this feature is
76L<[perl #120085]|https://rt.perl.org/rt3/Ticket/Display.html?id=120085>.
77
78=item Regular Expression Set Operations
79
80Introduced in: Perl 5.18
81
82The ticket for this feature is
83L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>.
84
85See also: L<perlrecharclass/Extended Bracketed Character Classes>
86
87Using this feature triggers warnings in the category
88C<experimental::regex_sets>.
89
90=item C<\s> in regexp matches vertical tab
91
92Introduced in Perl 5.18
93
94=item Subroutine signatures
95
96Introduced in Perl 5.20.0
97
98Using this feature triggers warnings in the category
99C<experimental::signatures>.
100
101The ticket for this feature is
102L<[perl #121481]|https://rt.perl.org/Ticket/Display.html?id=121481>.
103
104=item Postfix dereference syntax
105
106Introduced in Perl 5.20.0
107
108Using this feature triggers warnings in the category
109C<experimental::postderef>.
110
111The ticket for this feature is
112L<[perl #120162]|https://rt.perl.org:443/rt3/Ticket/Display.html?id=120162>.
113
114=item The <:win32> IO pseudolayer
115
116The ticket for this feature is
117L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
118
119See also L<perlrun>
120
121=item There is an C<installhtml> target in the Makefile.
122
123The ticket for this feature is
124L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
125
126=item Unicode in Perl on EBCDIC
127
128=back
129
130=head2 Accepted features
131
132These features were so wildly successful and played so well with others that
133we decided to remove their experimental status and admit them as full, stable
134features in the world of Perl, lavishing all the benefits and luxuries thereof.
135They are also awarded +5 Stability and +3 Charisma.
136
137=over 8
138
139=item 64-bit support
140
141Introduced in Perl 5.005
142
143=item die accepts a reference
144
145Introduced in Perl 5.005
146
147=item DB module
148
149Introduced in Perl 5.6.0
150
151See also L<perldebug>, L<perldebtut>
152
153=item Weak references
154
155Introduced in Perl 5.6.0
156
157=item Internal file glob
158
159Introduced in Perl 5.6.0
160
161=item fork() emulation
162
163Introduced in Perl 5.6.1
164
165See also L<perlfork>
166
167=item -Dusemultiplicity -Duseithreads
168
169Introduced in Perl 5.6.0
170
171Accepted in Perl 5.8.0
172
173=item Support for long doubles
174
175Introduced in Perl 5.6.0
176
177Accepted in Perl 5.8.1
178
179=item The C<\N> regex character class
180
181The C<\N> character class, not to be confused with the named character
182sequence C<\N{NAME}>, denotes any non-newline character in a regular
183expression.
184
185Introduced in Perl 5.12
186
187Exact version of acceptance unclear, but no later than Perl 5.18.
188
189=item C<(?{code})> and C<(??{ code })>
190
191Introduced in Perl 5.6.0
192
193Accepted in Perl 5.20.0
194
195See also L<perlre>
196
197=item Linux abstract Unix domain sockets
198
199Introduced in Perl 5.9.2
200
201Accepted before Perl 5.20.0.  The Socket library is now primarily maintained
202on CPAN, rather than in the perl core.
203
204See also L<Socket>
205
206=item Lvalue subroutines
207
208Introduced in Perl 5.6.0
209
210Accepted in Perl 5.20.0
211
212See also L<perlsub>
213
214=item Backtracking control verbs
215
216C<(*ACCEPT)>
217
218Introduced in: Perl 5.10
219
220Accepted in Perl 5.20.0
221
222=item The <:pop> IO pseudolayer
223
224See also L<perlrun>
225
226Accepted in Perl 5.20.0
227
228=back
229
230=head2 Removed features
231
232These features are no longer considered experimental and their functionality
233has disappeared. It's your own fault if you wrote production programs using
234these features after we explicitly told you not to (see L<perlpolicy>).
235
236=over 8
237
238=item 5.005-style threading
239
240Introduced in Perl 5.005
241
242Removed in Perl 5.10
243
244=item perlcc
245
246Introduced in Perl 5.005
247
248Moved from Perl 5.9.0 to CPAN
249
250=item The pseudo-hash data type
251
252Introduced in Perl 5.6.0
253
254Removed in Perl 5.9.0
255
256=item GetOpt::Long Options can now take multiple values at once (experimental)
257
258C<Getopt::Long> upgraded to version 2.35
259
260Removed in Perl 5.8.8
261
262=item Assertions
263
264The C<-A> command line switch
265
266Introduced in Perl 5.9.0
267
268Removed in Perl 5.9.5
269
270=item Test::Harness::Straps
271
272Moved from Perl 5.10.1 to CPAN
273
274=item C<legacy>
275
276The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
277
278Introduced in: 5.11.2
279
280Removed in: 5.11.3
281
282=back
283
284=head1 SEE ALSO
285
286For a complete list of features check L<feature>.
287
288=head1 AUTHORS
289
290brian d foy C<< <brian.d.foy@gmail.com> >>
291
292SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
293
294=head1 COPYRIGHT
295
296Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
297
298=head1 LICENSE
299
300You can use and redistribute this document under the same terms as Perl
301itself.
302
303=cut
304