This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlexperiment: add rt.perl.org link for lexsubs
[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
706c19b7 94=item The <:win32> IO pseudolayer
42e73e1c 95
a532d4a5
RS
96The ticket for this feature is
97L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
98
42e73e1c 99See also L<perlrun>
100
42e73e1c 101=item There is an C<installhtml> target in the Makefile.
afb63838
RS
102
103The ticket for this feature is
104L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
42e73e1c 105
106=item Unicode in Perl on EBCDIC
107
42e73e1c 108=back
109
110=head2 Accepted features
111
112These features were so wildly successful and played so well with others that
113we decided to remove their experimental status and admit them as full, stable
51c34fa4 114features in the world of Perl, lavishing all the benefits and luxuries thereof.
42e73e1c 115They are also awarded +5 Stability and +3 Charisma.
116
117=over 8
118
51c34fa4 119=item 64-bit support
42e73e1c 120
51c34fa4 121Introduced in Perl 5.005
fe8d2675 122
51c34fa4 123=item die accepts a reference
fe8d2675 124
51c34fa4 125Introduced in Perl 5.005
fe8d2675
AT
126
127=item DB module
128
129Introduced in Perl 5.6.0
130
131See also L<perldebug>, L<perldebtut>
132
133=item Weak references
134
135Introduced in Perl 5.6.0
136
137=item Internal file glob
138
139Introduced in Perl 5.6.0
140
51c34fa4 141=item fork() emulation
fe8d2675 142
51c34fa4 143Introduced in Perl 5.6.1
fe8d2675 144
51c34fa4 145See also L<perlfork>
fe8d2675 146
3a0e7915
RS
147=item -Dusemultiplicity -Duseithreads
148
149Introduced in Perl 5.6.0
150
151Accepted in Perl 5.8.0
152
36d2f798
RS
153=item Support for long doubles
154
155Introduced in Perl 5.6.0
156
157Accepted in Perl 5.8.1
158
51c34fa4
RS
159=item The C<\N> regex character class
160
161The C<\N> character class, not to be confused with the named character
162sequence C<\N{NAME}>, denotes any non-newline character in a regular
163expression.
164
3cb3bd66
RS
165Introduced in Perl 5.12
166
167Exact version of acceptance unclear, but no later than Perl 5.18.
fe8d2675 168
83f32aba
RS
169=item C<(?{code})> and C<(??{ code })>
170
171Introduced in Perl 5.6.0
172
173Accepted in Perl 5.20.0
174
175See also L<perlre>
176
e48e70eb
RS
177=item Linux abstract Unix domain sockets
178
179Introduced in Perl 5.9.2
180
181Accepted before Perl 5.20.0. The Socket library is now primarily maintained
182on CPAN, rather than in the perl core.
183
184See also L<Socket>
185
af7c9f88
RS
186=item Lvalue subroutines
187
188Introduced in Perl 5.6.0
189
190Accepted in Perl 5.20.0
191
192See also L<perlsub>
193
b387afbc
RS
194=item Backtracking control verbs
195
196C<(*ACCEPT)>
197
198Introduced in: Perl 5.10
199
200Accepted in Perl 5.20.0
201
8a7bc862
RS
202=item The <:pop> IO pseudolayer
203
204See also L<perlrun>
205
206Accepted in Perl 5.20.0
207
42e73e1c 208=back
209
210=head2 Removed features
211
212These features are no longer considered experimental and their functionality
213has disappeared. It's your own fault if you wrote production programs using
214these features after we explicitly told you not to (see L<perlpolicy>).
215
216=over 8
217
51c34fa4 218=item 5.005-style threading
42e73e1c 219
51c34fa4 220Introduced in Perl 5.005
42e73e1c 221
51c34fa4 222Removed in Perl 5.10
42e73e1c 223
51c34fa4 224=item perlcc
fe8d2675 225
51c34fa4 226Introduced in Perl 5.005
fe8d2675 227
51c34fa4 228Moved from Perl 5.9.0 to CPAN
fe8d2675 229
51c34fa4 230=item The pseudo-hash data type
fe8d2675 231
51c34fa4 232Introduced in Perl 5.6.0
fe8d2675 233
51c34fa4 234Removed in Perl 5.9.0
fe8d2675
AT
235
236=item GetOpt::Long Options can now take multiple values at once (experimental)
237
238C<Getopt::Long> upgraded to version 2.35
239
240Removed in Perl 5.8.8
241
51c34fa4 242=item Assertions
fe8d2675 243
51c34fa4 244The C<-A> command line switch
fe8d2675 245
51c34fa4 246Introduced in Perl 5.9.0
fe8d2675 247
51c34fa4 248Removed in Perl 5.9.5
fe8d2675 249
51c34fa4 250=item Test::Harness::Straps
fe8d2675 251
51c34fa4 252Moved from Perl 5.10.1 to CPAN
fe8d2675 253
51c34fa4 254=item C<legacy>
fe8d2675 255
51c34fa4 256The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
fe8d2675 257
51c34fa4
RS
258Introduced in: 5.11.2
259
260Removed in: 5.11.3
fe8d2675 261
42e73e1c 262=back
263
264=head1 AUTHORS
265
266brian d foy C<< <brian.d.foy@gmail.com> >>
267
fe8d2675
AT
268SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
269
42e73e1c 270=head1 COPYRIGHT
271
272Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
273
274=head1 LICENSE
275
276You can use and redistribute this document under the same terms as Perl
277itself.
278
279=cut