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