This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perllocale: Nits
[perl5.git] / pod / perlexperiment.pod
1 =head1 NAME
2
3 perlexperiment - A listing of experimental features in Perl
4
5 =head1 DESCRIPTION
6
7 This document lists the current and past experimental features in the perl
8 core. Although all of these are documented with their appropriate topics,
9 this succinct listing gives you an overview and basic facts about their
10 status.
11
12 So far we've merely tried to find and list the experimental features and infer
13 their inception, versions, etc. There's a lot of speculation here.
14
15 =head2 Current experiments
16
17 =over 8
18
19 =item C<our> can now have an experimental optional attribute C<unique>
20
21 Introduced in Perl 5.8.0
22
23 Deprecated in Perl 5.10.0
24
25 The ticket for this feature is
26 L<[perl #119313]|https://rt.perl.org/rt3/Ticket/Display.html?id=119313>.
27
28 =item Smart match (C<~~>)
29
30 Introduced in Perl 5.10.0
31
32 Modified in Perl 5.10.1, 5.12.0
33
34 Using this feature triggers warnings in the category
35 C<experimental::smartmatch>.
36
37 The ticket for this feature is
38 L<[perl #119317]|https://rt.perl.org/rt3/Ticket/Display.html?id=119317>.
39
40 =item Lexical C<$_>
41
42 Introduced in Perl 5.10.0
43
44 Using this feature triggers warnings in the category
45 C<experimental::lexical_topic>.
46
47 The ticket for this feature is
48 L<[perl #119315]|https://rt.perl.org/rt3/Ticket/Display.html?id=119315>.
49
50 =item Pluggable keywords
51
52 The ticket for this feature is
53 L<[perl #119455]|https://rt.perl.org/rt3/Ticket/Display.html?id=119455>.
54
55 See L<perlapi/PL_keyword_plugin> for the mechanism.
56
57 Introduced in: Perl 5.11.2
58
59 =item Array and hash container functions accept references
60
61 Introduced in Perl 5.14.0
62
63 The ticket for this feature is
64 L<[perl #119437]|https://rt.perl.org/rt3/Ticket/Display.html?id=119437>.
65
66 =item Lexical subroutines
67
68 Introduced in: Perl 5.18
69
70 See also: L<perlsub/Lexical Subroutines>
71
72 Using this feature triggers warnings in the category
73 C<experimental::lexical_subs>.
74
75 The ticket for this feature is
76 L<[perl #120085]|https://rt.perl.org/rt3/Ticket/Display.html?id=120085>.
77
78 =item Regular Expression Set Operations
79
80 Introduced in: Perl 5.18
81
82 The ticket for this feature is
83 L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>.
84
85 See also: L<perlrecharclass/Extended Bracketed Character Classes>
86
87 Using this feature triggers warnings in the category
88 C<experimental::regex_sets>.
89
90 =item C<\s> in regexp matches vertical tab
91
92 Introduced in Perl 5.18
93
94 =item Postfix dereference syntax
95
96 Introduced in Perl 5.20.0
97
98 Using this feature triggers warnings in the category
99 C<experimental::postderef>.
100
101 The ticket for this feature is
102 L<[perl #120162]|https://rt.perl.org:443/rt3/Ticket/Display.html?id=120162>.
103
104 =item The <:win32> IO pseudolayer
105
106 The ticket for this feature is
107 L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>.
108
109 See also L<perlrun>
110
111 =item There is an C<installhtml> target in the Makefile.
112
113 The ticket for this feature is
114 L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>.
115
116 =item Unicode in Perl on EBCDIC
117
118 =back
119
120 =head2 Accepted features
121
122 These features were so wildly successful and played so well with others that
123 we decided to remove their experimental status and admit them as full, stable
124 features in the world of Perl, lavishing all the benefits and luxuries thereof.
125 They are also awarded +5 Stability and +3 Charisma.
126
127 =over 8
128
129 =item 64-bit support
130
131 Introduced in Perl 5.005
132
133 =item die accepts a reference
134
135 Introduced in Perl 5.005
136
137 =item DB module
138
139 Introduced in Perl 5.6.0
140
141 See also L<perldebug>, L<perldebtut>
142
143 =item Weak references
144
145 Introduced in Perl 5.6.0
146
147 =item Internal file glob
148
149 Introduced in Perl 5.6.0
150
151 =item fork() emulation
152
153 Introduced in Perl 5.6.1
154
155 See also L<perlfork>
156
157 =item -Dusemultiplicity -Duseithreads
158
159 Introduced in Perl 5.6.0
160
161 Accepted in Perl 5.8.0
162
163 =item Support for long doubles
164
165 Introduced in Perl 5.6.0
166
167 Accepted in Perl 5.8.1
168
169 =item The C<\N> regex character class
170
171 The C<\N> character class, not to be confused with the named character
172 sequence C<\N{NAME}>, denotes any non-newline character in a regular
173 expression.
174
175 Introduced in Perl 5.12
176
177 Exact version of acceptance unclear, but no later than Perl 5.18.
178
179 =item C<(?{code})> and C<(??{ code })>
180
181 Introduced in Perl 5.6.0
182
183 Accepted in Perl 5.20.0
184
185 See also L<perlre>
186
187 =item Linux abstract Unix domain sockets
188
189 Introduced in Perl 5.9.2
190
191 Accepted before Perl 5.20.0.  The Socket library is now primarily maintained
192 on CPAN, rather than in the perl core.
193
194 See also L<Socket>
195
196 =item Lvalue subroutines
197
198 Introduced in Perl 5.6.0
199
200 Accepted in Perl 5.20.0
201
202 See also L<perlsub>
203
204 =item Backtracking control verbs
205
206 C<(*ACCEPT)>
207
208 Introduced in: Perl 5.10
209
210 Accepted in Perl 5.20.0
211
212 =item The <:pop> IO pseudolayer
213
214 See also L<perlrun>
215
216 Accepted in Perl 5.20.0
217
218 =back
219
220 =head2 Removed features
221
222 These features are no longer considered experimental and their functionality
223 has disappeared. It's your own fault if you wrote production programs using
224 these features after we explicitly told you not to (see L<perlpolicy>).
225
226 =over 8
227
228 =item 5.005-style threading
229
230 Introduced in Perl 5.005
231
232 Removed in Perl 5.10
233
234 =item perlcc
235
236 Introduced in Perl 5.005
237
238 Moved from Perl 5.9.0 to CPAN
239
240 =item The pseudo-hash data type
241
242 Introduced in Perl 5.6.0
243
244 Removed in Perl 5.9.0
245
246 =item GetOpt::Long Options can now take multiple values at once (experimental)
247
248 C<Getopt::Long> upgraded to version 2.35
249
250 Removed in Perl 5.8.8
251
252 =item Assertions
253
254 The C<-A> command line switch
255
256 Introduced in Perl 5.9.0
257
258 Removed in Perl 5.9.5
259
260 =item Test::Harness::Straps
261
262 Moved from Perl 5.10.1 to CPAN
263
264 =item C<legacy>
265
266 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
267
268 Introduced in: 5.11.2
269
270 Removed in: 5.11.3
271
272 =back
273
274 =head1 AUTHORS
275
276 brian d foy C<< <brian.d.foy@gmail.com> >>
277
278 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
279
280 =head1 COPYRIGHT
281
282 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
283
284 =head1 LICENSE
285
286 You can use and redistribute this document under the same terms as Perl
287 itself.
288
289 =cut