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