This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make cmp() work on EBCDIC with both UTF-8 operands
[perl5.git] / pod / perlexperiment.pod
CommitLineData
42e73e1c 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
d1558b3e 8core. Although all of these are documented with their appropriate topics,
42e73e1c 9this succinct listing gives you an overview and basic facts about their
10status.
11
fe8d2675 12So far we've merely tried to find and list the experimental features and infer
d1558b3e 13their inception, versions, etc. There's a lot of speculation here.
42e73e1c 14
15=head2 Current experiments
16
17=over 8
18
42e73e1c 19=item C<our> can now have an experimental optional attribute C<unique>
20
21Introduced in Perl 5.8.0
22
d1558b3e
FC
23Deprecated in Perl 5.10.0
24
02ba9cac
RS
25The ticket for this feature is
26L<[perl #119313]|https://rt.perl.org/rt3/Ticket/Display.html?id=119313>.
27
51c34fa4
RS
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
c77be11b
RS
37The ticket for this feature is
38L<[perl #119317]|https://rt.perl.org/rt3/Ticket/Display.html?id=119317>.
39
51c34fa4
RS
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
a291f3c5
RS
47The ticket for this feature is
48L<[perl #119315]|https://rt.perl.org/rt3/Ticket/Display.html?id=119315>.
49
51c34fa4
RS
50=item Pluggable keywords
51
57b503da
RS
52The ticket for this feature is
53L<[perl #119455]|https://rt.perl.org/rt3/Ticket/Display.html?id=119455>.
54
51c34fa4
RS
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
3ae5c8a2
RS
63The ticket for this feature is
64L<[perl #119437]|https://rt.perl.org/rt3/Ticket/Display.html?id=119437>.
65
51c34fa4
RS
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
bd5908dd
RS
75The ticket for this feature is
76L<[perl #120085]|https://rt.perl.org/rt3/Ticket/Display.html?id=120085>.
77
51c34fa4
RS
78=item Regular Expression Set Operations
79
80Introduced in: Perl 5.18
81
ca888027
RS
82The ticket for this feature is
83L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>.
84
51c34fa4
RS
85See also: L<perlrecharclass/Extended Bracketed Character Classes>
86
87Using this feature triggers warnings in the category
88C<experimental::regex_sets>.
89
afdb3b14
RS
90=item Subroutine signatures
91
92Introduced in Perl 5.20.0
93
94Using this feature triggers warnings in the category
95C<experimental::signatures>.
96
97The ticket for this feature is
98L<[perl #121481]|https://rt.perl.org/Ticket/Display.html?id=121481>.
99
baabe3fb 100=item Aliasing via reference
82848c10
FC
101
102Introduced in Perl 5.22.0
103
104Using this feature triggers warnings in the category
baabe3fb 105C<experimental::refaliasing>.
82848c10
FC
106
107The ticket for this feature is
108L<[perl #122947]|https://rt.perl.org/rt3/Ticket/Display.html?id=122947>.
109
110See also: L<perlref/Assigning to References>
111
99734069
FC
112=item The "const" attribute
113
114Introduced in Perl 5.22.0
115
116Using this feature triggers warnings in the category
117C<experimental::const_attr>.
118
119The ticket for this feature is
1e50fc51 120L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
99734069
FC
121
122See also: L<perlsub/Constant Functions>
123
1eac213a
KW
124=item use re 'strict';
125
126Introduced in Perl 5.22.0
127
128Using this feature triggers warnings in the category
129C<experimental::re_strict>.
130
131See L<re/'strict' mode>
132
6207d112
FC
133=item String- and number-specific bitwise operators
134
135Introduced in: Perl 5.22.0
136
137See also: L<perlop/Bitwise String Operators>
138
139Using this feature triggers warnings in the category
140C<experimental::bitwise>.
141
142The ticket for this feature is
0fe81779 143L<[perl #123707]|https://rt.perl.org/rt3/Ticket/Display.html?id=123707>.
6207d112 144
706c19b7 145=item The <:win32> IO pseudolayer
42e73e1c 146
a532d4a5
RS
147The ticket for this feature is
148L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
149
42e73e1c 150See also L<perlrun>
151
42e73e1c 152=item There is an C<installhtml> target in the Makefile.
afb63838
RS
153
154The ticket for this feature is
155L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
42e73e1c 156
157=item Unicode in Perl on EBCDIC
158
42e73e1c 159=back
160
161=head2 Accepted features
162
163These features were so wildly successful and played so well with others that
164we decided to remove their experimental status and admit them as full, stable
51c34fa4 165features in the world of Perl, lavishing all the benefits and luxuries thereof.
42e73e1c 166They are also awarded +5 Stability and +3 Charisma.
167
168=over 8
169
51c34fa4 170=item 64-bit support
42e73e1c 171
51c34fa4 172Introduced in Perl 5.005
fe8d2675 173
51c34fa4 174=item die accepts a reference
fe8d2675 175
51c34fa4 176Introduced in Perl 5.005
fe8d2675
AT
177
178=item DB module
179
180Introduced in Perl 5.6.0
181
182See also L<perldebug>, L<perldebtut>
183
184=item Weak references
185
186Introduced in Perl 5.6.0
187
188=item Internal file glob
189
190Introduced in Perl 5.6.0
191
51c34fa4 192=item fork() emulation
fe8d2675 193
51c34fa4 194Introduced in Perl 5.6.1
fe8d2675 195
51c34fa4 196See also L<perlfork>
fe8d2675 197
3a0e7915
RS
198=item -Dusemultiplicity -Duseithreads
199
200Introduced in Perl 5.6.0
201
202Accepted in Perl 5.8.0
203
36d2f798
RS
204=item Support for long doubles
205
206Introduced in Perl 5.6.0
207
208Accepted in Perl 5.8.1
209
51c34fa4
RS
210=item The C<\N> regex character class
211
212The C<\N> character class, not to be confused with the named character
213sequence C<\N{NAME}>, denotes any non-newline character in a regular
214expression.
215
3cb3bd66
RS
216Introduced in Perl 5.12
217
218Exact version of acceptance unclear, but no later than Perl 5.18.
fe8d2675 219
83f32aba
RS
220=item C<(?{code})> and C<(??{ code })>
221
222Introduced in Perl 5.6.0
223
224Accepted in Perl 5.20.0
225
226See also L<perlre>
227
e48e70eb
RS
228=item Linux abstract Unix domain sockets
229
230Introduced in Perl 5.9.2
231
232Accepted before Perl 5.20.0. The Socket library is now primarily maintained
233on CPAN, rather than in the perl core.
234
235See also L<Socket>
236
af7c9f88
RS
237=item Lvalue subroutines
238
239Introduced in Perl 5.6.0
240
241Accepted in Perl 5.20.0
242
243See also L<perlsub>
244
b387afbc
RS
245=item Backtracking control verbs
246
247C<(*ACCEPT)>
248
249Introduced in: Perl 5.10
250
251Accepted in Perl 5.20.0
252
8a7bc862
RS
253=item The <:pop> IO pseudolayer
254
255See also L<perlrun>
256
257Accepted in Perl 5.20.0
258
779cf272
KW
259=item C<\s> in regexp matches vertical tab
260
261Accepted in Perl 5.22.0
262
2ad792cd
AC
263=item Postfix dereference syntax
264
265Introduced in Perl 5.20.0
266
267Accepted in Perl 5.24.0
268
42e73e1c 269=back
270
271=head2 Removed features
272
273These features are no longer considered experimental and their functionality
274has disappeared. It's your own fault if you wrote production programs using
275these features after we explicitly told you not to (see L<perlpolicy>).
276
277=over 8
278
51c34fa4 279=item 5.005-style threading
42e73e1c 280
51c34fa4 281Introduced in Perl 5.005
42e73e1c 282
51c34fa4 283Removed in Perl 5.10
42e73e1c 284
51c34fa4 285=item perlcc
fe8d2675 286
51c34fa4 287Introduced in Perl 5.005
fe8d2675 288
51c34fa4 289Moved from Perl 5.9.0 to CPAN
fe8d2675 290
51c34fa4 291=item The pseudo-hash data type
fe8d2675 292
51c34fa4 293Introduced in Perl 5.6.0
fe8d2675 294
51c34fa4 295Removed in Perl 5.9.0
fe8d2675
AT
296
297=item GetOpt::Long Options can now take multiple values at once (experimental)
298
299C<Getopt::Long> upgraded to version 2.35
300
301Removed in Perl 5.8.8
302
51c34fa4 303=item Assertions
fe8d2675 304
51c34fa4 305The C<-A> command line switch
fe8d2675 306
51c34fa4 307Introduced in Perl 5.9.0
fe8d2675 308
51c34fa4 309Removed in Perl 5.9.5
fe8d2675 310
51c34fa4 311=item Test::Harness::Straps
fe8d2675 312
51c34fa4 313Moved from Perl 5.10.1 to CPAN
fe8d2675 314
51c34fa4 315=item C<legacy>
fe8d2675 316
51c34fa4 317The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
fe8d2675 318
51c34fa4
RS
319Introduced in: 5.11.2
320
321Removed in: 5.11.3
fe8d2675 322
42e73e1c 323=back
324
2b0121e1
AS
325=head1 SEE ALSO
326
327For a complete list of features check L<feature>.
328
42e73e1c 329=head1 AUTHORS
330
331brian d foy C<< <brian.d.foy@gmail.com> >>
332
fe8d2675
AT
333SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
334
42e73e1c 335=head1 COPYRIGHT
336
337Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
338
339=head1 LICENSE
340
341You can use and redistribute this document under the same terms as Perl
342itself.
343
344=cut