1PERLEXPERIMENT(1) Perl Programmers Reference Guide PERLEXPERIMENT(1)
2
3
4
6 perlexperiment - A listing of experimental features in Perl
7
9 This document lists the current and past experimental features in the
10 perl core. Although all of these are documented with their appropriate
11 topics, this succinct listing gives you an overview and basic facts
12 about their status.
13
14 So far we've merely tried to find and list the experimental features
15 and infer their inception, versions, etc. There's a lot of speculation
16 here.
17
18 Current experiments
19 Smart match ("~~")
20 Introduced in Perl 5.10.0
21
22 Modified in Perl 5.10.1, 5.12.0
23
24 Deprecated in 5.38.0
25
26 Will be removed in 5.42.0
27
28 Using this feature triggers warnings in the category
29 "deprecated".
30
31 The ticket for this experiment is [perl #13173]
32 <https://github.com/Perl/perl5/issues/13173>.
33
34 Pluggable keywords
35 Introduced in Perl 5.11.2
36
37 See "PL_keyword_plugin" in perlapi for the mechanism.
38
39 The ticket for this experiment is [perl #13199]
40 <https://github.com/Perl/perl5/issues/13199>.
41
42 Aliasing via reference
43 Introduced in Perl 5.22.0
44
45 Using this feature triggers warnings in the category
46 "experimental::refaliasing".
47
48 The ticket for this experiment is [perl #14150]
49 <https://github.com/Perl/perl5/issues/14150>.
50
51 See also: "Assigning to References" in perlref
52
53 The "const" attribute
54 Introduced in Perl 5.22.0
55
56 Using this feature triggers warnings in the category
57 "experimental::const_attr".
58
59 The ticket for this experiment is [perl #14428]
60 <https://github.com/Perl/perl5/issues/14428>.
61
62 See also: "Constant Functions" in perlsub
63
64 use re 'strict';
65 Introduced in Perl 5.22.0
66
67 Using this feature triggers warnings in the category
68 "experimental::re_strict".
69
70 The ticket for this experiment is [perl #18755]
71 <https://github.com/Perl/perl5/issues/18755>
72
73 See "'strict' mode" in re
74
75 Declaring a reference to a variable
76 Introduced in Perl 5.26.0
77
78 Using this feature triggers warnings in the category
79 "experimental::declared_refs".
80
81 The ticket for this experiment is [perl #15458]
82 <https://github.com/Perl/perl5/issues/15458>.
83
84 See also: "Declaring a Reference to a Variable" in perlref
85
86 There is an "installhtml" target in the Makefile.
87 The ticket for this experiment is [perl #12726]
88 <https://github.com/Perl/perl5/issues/12726>.
89
90 (Limited) Variable-length look-behind
91 Introduced in Perl 5.30.0.
92
93 Variability of up to 255 characters is handled.
94
95 Using this feature triggers warnings in the category
96 "experimental::vlb".
97
98 The ticket for this experiment is [perl #18756]
99 <https://github.com/Perl/perl5/issues/18756>.
100
101 See also: "(*positive_lookbehind:pattern)" in perlre and
102 "(*negative_lookbehind:pattern)" in perlre
103
104 Unicode private use character hooks
105 Introduced in Perl 5.30.0.
106
107 This feature is part of an interface intended for internal and
108 experimental use by the perl5 developers. You are unlikely to
109 encounter it in the wild.
110
111 Using this feature triggers warnings in the category
112 "experimental::private_use".
113
114 The ticket for this experiment is [perl #18758]
115 <https://github.com/Perl/perl5/issues/18758>.
116
117 Unicode property wildcards
118 Introduced in Perl 5.30.0.
119
120 This feature allows regular expression matching against Unicode
121 character properties to be expressed more concisely.
122
123 Using this feature triggers warnings in the category
124 "experimental::uniprop_wildcards".
125
126 The ticket for this experiment is [perl #18759]
127 <https://github.com/Perl/perl5/issues/18759>.
128
129 try/catch control structure
130 Introduced in Perl 5.34.0.
131
132 Using this feature triggers warnings in the category
133 "experimental::try".
134
135 The ticket for this experiment is [perl #18760]
136 <https://github.com/Perl/perl5/issues/18760>
137
138 Use of @_ within subroutine signatures
139 Introduced in Perl 5.36.0 as part of a reduction in the scope
140 of experimental subroutine signatures.
141
142 Using the default arguments array (@_) within a subroutine that
143 uses signatures will emit a warning in the category
144 "experimental::args_array_with_signatures". This includes @_
145 directly, elements of it such as $_[$index], or situations
146 where the default arguments array is accessed implicitly such
147 as "shift" or "pop" without arguments.
148
149 for loop with multiple iteration variables
150 Introduced in Perl 5.36.0.
151
152 Using this feature triggers warnings in the category
153 "experimental::for_list".
154
155 This feature enables a parenthesized list of iteration
156 variables for "for" rather than a single variable.
157
158 The ticket for this experiment is [perl #18744]
159 <https://github.com/Perl/perl5/issues/18744>.
160
161 The builtin namespace
162 Introduced in Perl 5.36.0.
163
164 Using this feature triggers warnings in the category
165 "experimental::builtin".
166
167 In Perl 5.36.0, a new namespace, "builtin", was created for new
168 core functions that will not be present in every namespace, but
169 will be available for importing. The namespace itself is
170 considered an experiment. Specific functions within it may
171 also be experimental.
172
173 The ticket for this experiment is [perl #19764]
174 <https://github.com/Perl/perl5/issues/19764>.
175
176 The defer block modifier
177 Introduced in Perl 5.36.0
178
179 Using this feature triggers warnings in the category
180 "experimental::defer".
181
182 This feature adds a new kind of block, a "defer" block, which
183 will not be executed until the containing block is being
184 exited.
185
186 The ticket for this experiment is [perl #17949]
187 <https://github.com/Perl/perl5/issues/17949>.
188
189 Extra paired delimiters for quote-like operators
190 Introduced in Perl 5.36.0
191
192 Using this feature triggers warnings in the category
193 "experimental::extra_paired_delimiters".
194
195 This feature allows for many non-ASCII pairs of mirroring
196 delimiters, for example:
197
198 my @array = qw« tinker tailer soldier spy »;
199
200 The ticket for this experiment is [perl #19765]
201 <https://github.com/Perl/perl5/issues/19765>.
202
203 Accepted features
204 These features were so wildly successful and played so well with others
205 that we decided to remove their experimental status and admit them as
206 full, stable features in the world of Perl, lavishing all the benefits
207 and luxuries thereof. They are also awarded +5 Stability and +3
208 Charisma.
209
210 64-bit support
211 Introduced in Perl 5.005
212
213 die accepts a reference
214 Introduced in Perl 5.005
215
216 DB module
217 Introduced in Perl 5.6.0
218
219 See also perldebug, perldebtut
220
221 Weak references
222 Introduced in Perl 5.6.0
223
224 Internal file glob
225 Introduced in Perl 5.6.0
226
227 fork() emulation
228 Introduced in Perl 5.6.1
229
230 See also perlfork
231
232 -Dusemultiplicity -Duseithreads
233 Introduced in Perl 5.6.0
234
235 Accepted in Perl 5.8.0
236
237 Support for long doubles
238 Introduced in Perl 5.6.0
239
240 Accepted in Perl 5.8.1
241
242 The "\N" regex character class
243 The "\N" character class, not to be confused with the named
244 character sequence "\N{NAME}", denotes any non-newline
245 character in a regular expression.
246
247 Introduced in Perl 5.12
248
249 Exact version of acceptance unclear, but no later than Perl
250 5.18.
251
252 "(?{code})" and "(??{ code })"
253 Introduced in Perl 5.6.0
254
255 Accepted in Perl 5.20.0
256
257 See also perlre
258
259 Linux abstract Unix domain sockets
260 Introduced in Perl 5.9.2
261
262 Accepted before Perl 5.20.0. The Socket library is now
263 primarily maintained on CPAN, rather than in the perl core.
264
265 See also Socket
266
267 Lvalue subroutines
268 Introduced in Perl 5.6.0
269
270 Accepted in Perl 5.20.0
271
272 See also perlsub
273
274 Backtracking control verbs
275 "(*ACCEPT)"
276
277 Introduced in Perl 5.10
278
279 Accepted in Perl 5.20.0
280
281 The ":pop" IO pseudolayer
282 See also "PERLIO" in perlrun
283
284 Accepted in Perl 5.20.0
285
286 "\s" in regexp matches vertical tab
287 Accepted in Perl 5.22.0
288
289 Postfix dereference syntax
290 Introduced in Perl 5.20.0
291
292 Accepted in Perl 5.24.0
293
294 Lexical subroutines
295 Introduced in Perl 5.18.0
296
297 Accepted in Perl 5.26.0
298
299 String- and number-specific bitwise operators
300 Introduced in Perl 5.22.0
301
302 Accepted in Perl 5.28.0
303
304 Alphabetic assertions
305 Introduced in Perl 5.28.0
306
307 Accepted in Perl 5.32.0
308
309 Script runs
310 Introduced in Perl 5.28.0
311
312 Accepted in Perl 5.32.0
313
314 The infix "isa" operator
315 Introduced in Perl 5.32.0
316
317 Accepted in Perl 5.36.0
318
319 Subroutine signatures
320 Introduced in Perl 5.20.0
321
322 Accepted in Perl 5.36.0
323
324 Regular Expression Set Operations
325 Introduced in Perl 5.18
326
327 Accepted in Perl 5.36
328
329 See : "Extended Bracketed Character Classes" in perlrecharclass
330
331 Removed features
332 These features are no longer considered experimental and their
333 functionality has disappeared. It's your own fault if you wrote
334 production programs using these features after we explicitly told you
335 not to (see perlpolicy).
336
337 5.005-style threading
338 Introduced in Perl 5.005
339
340 Removed in Perl 5.10
341
342 perlcc Introduced in Perl 5.005
343
344 Moved from Perl 5.9.0 to CPAN
345
346 The pseudo-hash data type
347 Introduced in Perl 5.6.0
348
349 Removed in Perl 5.9.0
350
351 GetOpt::Long Options can now take multiple values at once
352 (experimental)
353 "Getopt::Long" upgraded to version 2.35
354
355 Removed in Perl 5.8.8
356
357 Assertions
358 The "-A" command line switch
359
360 Introduced in Perl 5.9.0
361
362 Removed in Perl 5.9.5
363
364 Test::Harness::Straps
365 Moved from Perl 5.10.1 to CPAN
366
367 "legacy"
368 The experimental "legacy" pragma was swallowed by the "feature"
369 pragma.
370
371 Introduced in Perl 5.11.2
372
373 Removed in Perl 5.11.3
374
375 Lexical $_
376 Using this feature triggered warnings in the category
377 "experimental::lexical_topic".
378
379 Introduced in Perl 5.10.0
380
381 Removed in Perl 5.24.0
382
383 Array and hash container functions accept references
384 Using this feature triggered warnings in the category
385 "experimental::autoderef".
386
387 Superseded by "Postfix dereference syntax".
388
389 Introduced in Perl 5.14.0
390
391 Removed in Perl 5.24.0
392
393 "our" can have an experimental optional attribute "unique"
394 Introduced in Perl 5.8.0
395
396 Deprecated in Perl 5.10.0
397
398 Removed in Perl 5.28.0
399
400 The ":win32" IO pseudolayer
401 Introduced in Perl 5.8.0 (or before)
402
403 Removed in Perl 5.36.0
404
406 For a complete list of features check feature.
407
409 brian d foy "<brian.d.foy@gmail.com>"
410
411 Sébastien Aperghis-Tramoni "<saper@cpan.org>"
412
414 Copyright 2010, brian d foy "<brian.d.foy@gmail.com>"
415
417 You can use and redistribute this document under the same terms as Perl
418 itself.
419
420
421
422perl v5.38.2 2023-11-30 PERLEXPERIMENT(1)