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