This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Ticket number for bitops in perlexperiment
[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
3602d7b6
RS
90=item C<\s> in regexp matches vertical tab
91
92Introduced in Perl 5.18
51c34fa4 93
afdb3b14
RS
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
01582e5c
RS
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
baabe3fb 114=item Aliasing via reference
82848c10
FC
115
116Introduced in Perl 5.22.0
117
118Using this feature triggers warnings in the category
baabe3fb 119C<experimental::refaliasing>.
82848c10
FC
120
121The ticket for this feature is
122L<[perl #122947]|https://rt.perl.org/rt3/Ticket/Display.html?id=122947>.
123
124See also: L<perlref/Assigning to References>
125
99734069
FC
126=item The "const" attribute
127
128Introduced in Perl 5.22.0
129
130Using this feature triggers warnings in the category
131C<experimental::const_attr>.
132
133The ticket for this feature is
1e50fc51 134L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
99734069
FC
135
136See also: L<perlsub/Constant Functions>
137
6207d112
FC
138=item String- and number-specific bitwise operators
139
140Introduced in: Perl 5.22.0
141
142See also: L<perlop/Bitwise String Operators>
143
144Using this feature triggers warnings in the category
145C<experimental::bitwise>.
146
147The ticket for this feature is
0fe81779 148L<[perl #123707]|https://rt.perl.org/rt3/Ticket/Display.html?id=123707>.
6207d112 149
706c19b7 150=item The <:win32> IO pseudolayer
42e73e1c 151
a532d4a5
RS
152The ticket for this feature is
153L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
154
42e73e1c 155See also L<perlrun>
156
42e73e1c 157=item There is an C<installhtml> target in the Makefile.
afb63838
RS
158
159The ticket for this feature is
160L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
42e73e1c 161
162=item Unicode in Perl on EBCDIC
163
42e73e1c 164=back
165
166=head2 Accepted features
167
168These features were so wildly successful and played so well with others that
169we decided to remove their experimental status and admit them as full, stable
51c34fa4 170features in the world of Perl, lavishing all the benefits and luxuries thereof.
42e73e1c 171They are also awarded +5 Stability and +3 Charisma.
172
173=over 8
174
51c34fa4 175=item 64-bit support
42e73e1c 176
51c34fa4 177Introduced in Perl 5.005
fe8d2675 178
51c34fa4 179=item die accepts a reference
fe8d2675 180
51c34fa4 181Introduced in Perl 5.005
fe8d2675
AT
182
183=item DB module
184
185Introduced in Perl 5.6.0
186
187See also L<perldebug>, L<perldebtut>
188
189=item Weak references
190
191Introduced in Perl 5.6.0
192
193=item Internal file glob
194
195Introduced in Perl 5.6.0
196
51c34fa4 197=item fork() emulation
fe8d2675 198
51c34fa4 199Introduced in Perl 5.6.1
fe8d2675 200
51c34fa4 201See also L<perlfork>
fe8d2675 202
3a0e7915
RS
203=item -Dusemultiplicity -Duseithreads
204
205Introduced in Perl 5.6.0
206
207Accepted in Perl 5.8.0
208
36d2f798
RS
209=item Support for long doubles
210
211Introduced in Perl 5.6.0
212
213Accepted in Perl 5.8.1
214
51c34fa4
RS
215=item The C<\N> regex character class
216
217The C<\N> character class, not to be confused with the named character
218sequence C<\N{NAME}>, denotes any non-newline character in a regular
219expression.
220
3cb3bd66
RS
221Introduced in Perl 5.12
222
223Exact version of acceptance unclear, but no later than Perl 5.18.
fe8d2675 224
83f32aba
RS
225=item C<(?{code})> and C<(??{ code })>
226
227Introduced in Perl 5.6.0
228
229Accepted in Perl 5.20.0
230
231See also L<perlre>
232
e48e70eb
RS
233=item Linux abstract Unix domain sockets
234
235Introduced in Perl 5.9.2
236
237Accepted before Perl 5.20.0. The Socket library is now primarily maintained
238on CPAN, rather than in the perl core.
239
240See also L<Socket>
241
af7c9f88
RS
242=item Lvalue subroutines
243
244Introduced in Perl 5.6.0
245
246Accepted in Perl 5.20.0
247
248See also L<perlsub>
249
b387afbc
RS
250=item Backtracking control verbs
251
252C<(*ACCEPT)>
253
254Introduced in: Perl 5.10
255
256Accepted in Perl 5.20.0
257
8a7bc862
RS
258=item The <:pop> IO pseudolayer
259
260See also L<perlrun>
261
262Accepted in Perl 5.20.0
263
42e73e1c 264=back
265
266=head2 Removed features
267
268These features are no longer considered experimental and their functionality
269has disappeared. It's your own fault if you wrote production programs using
270these features after we explicitly told you not to (see L<perlpolicy>).
271
272=over 8
273
51c34fa4 274=item 5.005-style threading
42e73e1c 275
51c34fa4 276Introduced in Perl 5.005
42e73e1c 277
51c34fa4 278Removed in Perl 5.10
42e73e1c 279
51c34fa4 280=item perlcc
fe8d2675 281
51c34fa4 282Introduced in Perl 5.005
fe8d2675 283
51c34fa4 284Moved from Perl 5.9.0 to CPAN
fe8d2675 285
51c34fa4 286=item The pseudo-hash data type
fe8d2675 287
51c34fa4 288Introduced in Perl 5.6.0
fe8d2675 289
51c34fa4 290Removed in Perl 5.9.0
fe8d2675
AT
291
292=item GetOpt::Long Options can now take multiple values at once (experimental)
293
294C<Getopt::Long> upgraded to version 2.35
295
296Removed in Perl 5.8.8
297
51c34fa4 298=item Assertions
fe8d2675 299
51c34fa4 300The C<-A> command line switch
fe8d2675 301
51c34fa4 302Introduced in Perl 5.9.0
fe8d2675 303
51c34fa4 304Removed in Perl 5.9.5
fe8d2675 305
51c34fa4 306=item Test::Harness::Straps
fe8d2675 307
51c34fa4 308Moved from Perl 5.10.1 to CPAN
fe8d2675 309
51c34fa4 310=item C<legacy>
fe8d2675 311
51c34fa4 312The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
fe8d2675 313
51c34fa4
RS
314Introduced in: 5.11.2
315
316Removed in: 5.11.3
fe8d2675 317
42e73e1c 318=back
319
2b0121e1
AS
320=head1 SEE ALSO
321
322For a complete list of features check L<feature>.
323
42e73e1c 324=head1 AUTHORS
325
326brian d foy C<< <brian.d.foy@gmail.com> >>
327
fe8d2675
AT
328SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
329
42e73e1c 330=head1 COPYRIGHT
331
332Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
333
334=head1 LICENSE
335
336You can use and redistribute this document under the same terms as Perl
337itself.
338
339=cut