Commit | Line | Data |
---|---|---|
42e73e1c | 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 | |
d1558b3e | 8 | core. Although all of these are documented with their appropriate topics, |
42e73e1c | 9 | this succinct listing gives you an overview and basic facts about their |
10 | status. | |
11 | ||
fe8d2675 | 12 | So far we've merely tried to find and list the experimental features and infer |
d1558b3e | 13 | their 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 | ||
21 | Introduced in Perl 5.8.0 | |
22 | ||
d1558b3e FC |
23 | Deprecated in Perl 5.10.0 |
24 | ||
02ba9cac RS |
25 | The ticket for this feature is |
26 | L<[perl #119313]|https://rt.perl.org/rt3/Ticket/Display.html?id=119313>. | |
27 | ||
51c34fa4 RS |
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 | ||
c77be11b RS |
37 | The ticket for this feature is |
38 | L<[perl #119317]|https://rt.perl.org/rt3/Ticket/Display.html?id=119317>. | |
39 | ||
51c34fa4 RS |
40 | =item Pluggable keywords |
41 | ||
57b503da RS |
42 | The ticket for this feature is |
43 | L<[perl #119455]|https://rt.perl.org/rt3/Ticket/Display.html?id=119455>. | |
44 | ||
51c34fa4 RS |
45 | See L<perlapi/PL_keyword_plugin> for the mechanism. |
46 | ||
aec1aee9 | 47 | Introduced in Perl 5.11.2 |
51c34fa4 | 48 | |
51c34fa4 RS |
49 | =item Lexical subroutines |
50 | ||
aec1aee9 | 51 | Introduced in Perl 5.18 |
51c34fa4 RS |
52 | |
53 | See also: L<perlsub/Lexical Subroutines> | |
54 | ||
55 | Using this feature triggers warnings in the category | |
56 | C<experimental::lexical_subs>. | |
57 | ||
bd5908dd RS |
58 | The ticket for this feature is |
59 | L<[perl #120085]|https://rt.perl.org/rt3/Ticket/Display.html?id=120085>. | |
60 | ||
51c34fa4 RS |
61 | =item Regular Expression Set Operations |
62 | ||
aec1aee9 | 63 | Introduced in Perl 5.18 |
51c34fa4 | 64 | |
ca888027 RS |
65 | The ticket for this feature is |
66 | L<[perl #119451]|https://rt.perl.org/rt3/Ticket/Display.html?id=119451>. | |
67 | ||
51c34fa4 RS |
68 | See also: L<perlrecharclass/Extended Bracketed Character Classes> |
69 | ||
70 | Using this feature triggers warnings in the category | |
71 | C<experimental::regex_sets>. | |
72 | ||
afdb3b14 RS |
73 | =item Subroutine signatures |
74 | ||
75 | Introduced in Perl 5.20.0 | |
76 | ||
77 | Using this feature triggers warnings in the category | |
78 | C<experimental::signatures>. | |
79 | ||
80 | The ticket for this feature is | |
81 | L<[perl #121481]|https://rt.perl.org/Ticket/Display.html?id=121481>. | |
82 | ||
baabe3fb | 83 | =item Aliasing via reference |
82848c10 FC |
84 | |
85 | Introduced in Perl 5.22.0 | |
86 | ||
87 | Using this feature triggers warnings in the category | |
baabe3fb | 88 | C<experimental::refaliasing>. |
82848c10 FC |
89 | |
90 | The ticket for this feature is | |
91 | L<[perl #122947]|https://rt.perl.org/rt3/Ticket/Display.html?id=122947>. | |
92 | ||
93 | See also: L<perlref/Assigning to References> | |
94 | ||
99734069 FC |
95 | =item The "const" attribute |
96 | ||
97 | Introduced in Perl 5.22.0 | |
98 | ||
99 | Using this feature triggers warnings in the category | |
100 | C<experimental::const_attr>. | |
101 | ||
102 | The ticket for this feature is | |
1e50fc51 | 103 | L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>. |
99734069 FC |
104 | |
105 | See also: L<perlsub/Constant Functions> | |
106 | ||
1eac213a KW |
107 | =item use re 'strict'; |
108 | ||
109 | Introduced in Perl 5.22.0 | |
110 | ||
111 | Using this feature triggers warnings in the category | |
112 | C<experimental::re_strict>. | |
113 | ||
114 | See L<re/'strict' mode> | |
115 | ||
6207d112 FC |
116 | =item String- and number-specific bitwise operators |
117 | ||
aec1aee9 | 118 | Introduced in Perl 5.22.0 |
6207d112 FC |
119 | |
120 | See also: L<perlop/Bitwise String Operators> | |
121 | ||
122 | Using this feature triggers warnings in the category | |
123 | C<experimental::bitwise>. | |
124 | ||
125 | The ticket for this feature is | |
0fe81779 | 126 | L<[perl #123707]|https://rt.perl.org/rt3/Ticket/Display.html?id=123707>. |
6207d112 | 127 | |
706c19b7 | 128 | =item The <:win32> IO pseudolayer |
42e73e1c | 129 | |
a532d4a5 RS |
130 | The ticket for this feature is |
131 | L<[perl #119453]|https://rt.perl.org/rt3/Ticket/Display.html?id=119453>. | |
132 | ||
42e73e1c | 133 | See also L<perlrun> |
134 | ||
42e73e1c | 135 | =item There is an C<installhtml> target in the Makefile. |
afb63838 RS |
136 | |
137 | The ticket for this feature is | |
138 | L<[perl #116487]|https://rt.perl.org/rt3/Ticket/Display.html?id=116487>. | |
42e73e1c | 139 | |
140 | =item Unicode in Perl on EBCDIC | |
141 | ||
42e73e1c | 142 | =back |
143 | ||
144 | =head2 Accepted features | |
145 | ||
146 | These features were so wildly successful and played so well with others that | |
147 | we decided to remove their experimental status and admit them as full, stable | |
51c34fa4 | 148 | features in the world of Perl, lavishing all the benefits and luxuries thereof. |
42e73e1c | 149 | They are also awarded +5 Stability and +3 Charisma. |
150 | ||
151 | =over 8 | |
152 | ||
51c34fa4 | 153 | =item 64-bit support |
42e73e1c | 154 | |
51c34fa4 | 155 | Introduced in Perl 5.005 |
fe8d2675 | 156 | |
51c34fa4 | 157 | =item die accepts a reference |
fe8d2675 | 158 | |
51c34fa4 | 159 | Introduced in Perl 5.005 |
fe8d2675 AT |
160 | |
161 | =item DB module | |
162 | ||
163 | Introduced in Perl 5.6.0 | |
164 | ||
165 | See also L<perldebug>, L<perldebtut> | |
166 | ||
167 | =item Weak references | |
168 | ||
169 | Introduced in Perl 5.6.0 | |
170 | ||
171 | =item Internal file glob | |
172 | ||
173 | Introduced in Perl 5.6.0 | |
174 | ||
51c34fa4 | 175 | =item fork() emulation |
fe8d2675 | 176 | |
51c34fa4 | 177 | Introduced in Perl 5.6.1 |
fe8d2675 | 178 | |
51c34fa4 | 179 | See also L<perlfork> |
fe8d2675 | 180 | |
3a0e7915 RS |
181 | =item -Dusemultiplicity -Duseithreads |
182 | ||
183 | Introduced in Perl 5.6.0 | |
184 | ||
185 | Accepted in Perl 5.8.0 | |
186 | ||
36d2f798 RS |
187 | =item Support for long doubles |
188 | ||
189 | Introduced in Perl 5.6.0 | |
190 | ||
191 | Accepted in Perl 5.8.1 | |
192 | ||
51c34fa4 RS |
193 | =item The C<\N> regex character class |
194 | ||
195 | The C<\N> character class, not to be confused with the named character | |
196 | sequence C<\N{NAME}>, denotes any non-newline character in a regular | |
197 | expression. | |
198 | ||
3cb3bd66 RS |
199 | Introduced in Perl 5.12 |
200 | ||
201 | Exact version of acceptance unclear, but no later than Perl 5.18. | |
fe8d2675 | 202 | |
83f32aba RS |
203 | =item C<(?{code})> and C<(??{ code })> |
204 | ||
205 | Introduced in Perl 5.6.0 | |
206 | ||
207 | Accepted in Perl 5.20.0 | |
208 | ||
209 | See also L<perlre> | |
210 | ||
e48e70eb RS |
211 | =item Linux abstract Unix domain sockets |
212 | ||
213 | Introduced in Perl 5.9.2 | |
214 | ||
215 | Accepted before Perl 5.20.0. The Socket library is now primarily maintained | |
216 | on CPAN, rather than in the perl core. | |
217 | ||
218 | See also L<Socket> | |
219 | ||
af7c9f88 RS |
220 | =item Lvalue subroutines |
221 | ||
222 | Introduced in Perl 5.6.0 | |
223 | ||
224 | Accepted in Perl 5.20.0 | |
225 | ||
226 | See also L<perlsub> | |
227 | ||
b387afbc RS |
228 | =item Backtracking control verbs |
229 | ||
230 | C<(*ACCEPT)> | |
231 | ||
aec1aee9 | 232 | Introduced in Perl 5.10 |
b387afbc RS |
233 | |
234 | Accepted in Perl 5.20.0 | |
235 | ||
8a7bc862 RS |
236 | =item The <:pop> IO pseudolayer |
237 | ||
238 | See also L<perlrun> | |
239 | ||
240 | Accepted in Perl 5.20.0 | |
241 | ||
779cf272 KW |
242 | =item C<\s> in regexp matches vertical tab |
243 | ||
244 | Accepted in Perl 5.22.0 | |
245 | ||
2ad792cd AC |
246 | =item Postfix dereference syntax |
247 | ||
248 | Introduced in Perl 5.20.0 | |
249 | ||
250 | Accepted in Perl 5.24.0 | |
251 | ||
42e73e1c | 252 | =back |
253 | ||
254 | =head2 Removed features | |
255 | ||
256 | These features are no longer considered experimental and their functionality | |
257 | has disappeared. It's your own fault if you wrote production programs using | |
258 | these features after we explicitly told you not to (see L<perlpolicy>). | |
259 | ||
260 | =over 8 | |
261 | ||
51c34fa4 | 262 | =item 5.005-style threading |
42e73e1c | 263 | |
51c34fa4 | 264 | Introduced in Perl 5.005 |
42e73e1c | 265 | |
51c34fa4 | 266 | Removed in Perl 5.10 |
42e73e1c | 267 | |
51c34fa4 | 268 | =item perlcc |
fe8d2675 | 269 | |
51c34fa4 | 270 | Introduced in Perl 5.005 |
fe8d2675 | 271 | |
51c34fa4 | 272 | Moved from Perl 5.9.0 to CPAN |
fe8d2675 | 273 | |
51c34fa4 | 274 | =item The pseudo-hash data type |
fe8d2675 | 275 | |
51c34fa4 | 276 | Introduced in Perl 5.6.0 |
fe8d2675 | 277 | |
51c34fa4 | 278 | Removed in Perl 5.9.0 |
fe8d2675 AT |
279 | |
280 | =item GetOpt::Long Options can now take multiple values at once (experimental) | |
281 | ||
282 | C<Getopt::Long> upgraded to version 2.35 | |
283 | ||
284 | Removed in Perl 5.8.8 | |
285 | ||
51c34fa4 | 286 | =item Assertions |
fe8d2675 | 287 | |
51c34fa4 | 288 | The C<-A> command line switch |
fe8d2675 | 289 | |
51c34fa4 | 290 | Introduced in Perl 5.9.0 |
fe8d2675 | 291 | |
51c34fa4 | 292 | Removed in Perl 5.9.5 |
fe8d2675 | 293 | |
51c34fa4 | 294 | =item Test::Harness::Straps |
fe8d2675 | 295 | |
51c34fa4 | 296 | Moved from Perl 5.10.1 to CPAN |
fe8d2675 | 297 | |
51c34fa4 | 298 | =item C<legacy> |
fe8d2675 | 299 | |
51c34fa4 | 300 | The experimental C<legacy> pragma was swallowed by the C<feature> pragma. |
fe8d2675 | 301 | |
aec1aee9 | 302 | Introduced in Perl 5.11.2 |
51c34fa4 | 303 | |
aec1aee9 | 304 | Removed in Perl 5.11.3 |
fe8d2675 | 305 | |
f8b823eb DIM |
306 | =item Lexical C<$_> |
307 | ||
74a78c10 AC |
308 | Using this feature triggered warnings in the category |
309 | C<experimental::lexical_topic>. | |
310 | ||
f8b823eb DIM |
311 | Introduced in Perl 5.10.0 |
312 | ||
313 | Removed in Perl 5.24.0 | |
314 | ||
315 | =item Array and hash container functions accept references | |
316 | ||
74a78c10 AC |
317 | Using this feature triggered warnings in the category |
318 | C<experimental::autoderef>. | |
319 | ||
f8b823eb DIM |
320 | Superseded by L</Postfix dereference syntax>. |
321 | ||
322 | Introduced in Perl 5.14.0 | |
323 | ||
324 | Removed in Perl 5.24.0 | |
325 | ||
42e73e1c | 326 | =back |
327 | ||
2b0121e1 AS |
328 | =head1 SEE ALSO |
329 | ||
330 | For a complete list of features check L<feature>. | |
331 | ||
42e73e1c | 332 | =head1 AUTHORS |
333 | ||
334 | brian d foy C<< <brian.d.foy@gmail.com> >> | |
335 | ||
fe8d2675 AT |
336 | SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >> |
337 | ||
42e73e1c | 338 | =head1 COPYRIGHT |
339 | ||
340 | Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >> | |
341 | ||
342 | =head1 LICENSE | |
343 | ||
344 | You can use and redistribute this document under the same terms as Perl | |
345 | itself. | |
346 | ||
347 | =cut |