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 | ||
cf26f5d5 | 19 | =item -Dusemultiplicity -Duseithreads |
42e73e1c | 20 | |
21 | Introduced in Perl 5.6.0 | |
22 | ||
23 | =item Long Doubles Still Don't Work In Solaris | |
24 | ||
25 | Introduced in Perl 5.7.0 | |
26 | ||
42e73e1c | 27 | =item C<our> can now have an experimental optional attribute C<unique> |
28 | ||
29 | Introduced in Perl 5.8.0 | |
30 | ||
d1558b3e FC |
31 | Deprecated in Perl 5.10.0 |
32 | ||
42e73e1c | 33 | =item Linux abstract Unix domain sockets |
34 | ||
35 | Introduced in Perl 5.9.2 | |
36 | ||
37 | See also L<Socket> | |
38 | ||
706c19b7 | 39 | =item The <:pop> IO pseudolayer |
42e73e1c | 40 | |
41 | See also L<perlrun> | |
42 | ||
706c19b7 | 43 | =item The <:win32> IO pseudolayer |
42e73e1c | 44 | |
45 | See also L<perlrun> | |
46 | ||
42e73e1c | 47 | =item MLDBM |
48 | ||
49 | See also L<perldsc> | |
50 | ||
51 | =item internal functions with M flag | |
52 | ||
53 | See also L<perlguts> | |
54 | ||
55 | =item lex_start API | |
56 | ||
57 | Introduced in Perl 5.13.7 | |
58 | ||
fe8d2675 | 59 | =item internal API for C<%^H> |
42e73e1c | 60 | |
61 | Introduced in Perl 5.13.7 | |
62 | ||
63 | See also C<cophh_> in L<perlapi>. | |
64 | ||
fe8d2675 AT |
65 | =item alloccopstash |
66 | ||
67 | Introduced in Perl 5.18.0 | |
68 | ||
42e73e1c | 69 | =item av_create_and_push |
70 | ||
71 | =item av_create_and_unshift_one | |
72 | ||
73 | =item av_create_and_unshift_one | |
74 | ||
fe8d2675 AT |
75 | =item cop_store_label |
76 | ||
77 | Introduced in Perl 5.16.0 | |
78 | ||
42e73e1c | 79 | =item PL_keyword_plugin |
80 | ||
fe8d2675 AT |
81 | =item gv_fetchmethod_*_flags |
82 | ||
83 | Introduced in Perl 5.16.0 | |
84 | ||
42e73e1c | 85 | =item hv_iternext_flags |
86 | ||
87 | =item lex_bufutf8 | |
88 | ||
89 | =item lex_discard_to | |
90 | ||
91 | =item lex_grow_linestr | |
92 | ||
93 | =item lex_next_chunk | |
94 | ||
95 | =item lex_peek_unichar | |
96 | ||
97 | =item lex_read_space | |
98 | ||
99 | =item lex_read_to | |
100 | ||
101 | =item lex_read_unichar | |
102 | ||
103 | =item lex_stuff_pv | |
104 | ||
105 | =item lex_stuff_pvn | |
106 | ||
107 | =item lex_stuff_pvs | |
108 | ||
109 | =item lex_stuff_sv | |
110 | ||
111 | =item lex_unstuff | |
112 | ||
fe8d2675 AT |
113 | =item op_scope |
114 | ||
115 | =item op_lvalue | |
116 | ||
42e73e1c | 117 | =item parse_fullstmt |
118 | ||
119 | =item parse_stmtseq | |
120 | ||
121 | =item PL_parser-E<gt>bufend | |
122 | ||
123 | =item PL_parser-E<gt>bufptr | |
124 | ||
125 | =item PL_parser-E<gt>linestart | |
126 | ||
127 | =item PL_parser-E<gt>linestr | |
128 | ||
129 | =item Perl_signbit | |
130 | ||
131 | =item pad_findmy | |
132 | ||
133 | =item sv_utf8_decode | |
134 | ||
135 | =item sv_utf8_downgrade | |
136 | ||
137 | =item bytes_from_utf8 | |
138 | ||
139 | =item bytes_to_utf8 | |
140 | ||
141 | =item utf8_to_bytes | |
142 | ||
42e73e1c | 143 | =item Lvalue subroutines |
144 | ||
145 | Introduced in Perl 5.6.0 | |
146 | ||
147 | See also L<perlsub> | |
148 | ||
149 | =item There is an C<installhtml> target in the Makefile. | |
150 | ||
151 | =item Unicode in Perl on EBCDIC | |
152 | ||
153 | =item C<(?{code})> | |
154 | ||
155 | See also L<perlre> | |
156 | ||
157 | =item C<(??{ code })> | |
158 | ||
159 | See also L<perlre> | |
160 | ||
fe8d2675 AT |
161 | =item Smart match (C<~~>) |
162 | ||
163 | Introduced in Perl 5.10.0 | |
164 | ||
165 | Modified in Perl 5.10.1, 5.12.0 | |
166 | ||
9f28b5b1 RS |
167 | Using this feature triggers warnings in the category |
168 | C<experimental::smartmatch>. | |
169 | ||
fe8d2675 AT |
170 | =item Lexical C<$_> |
171 | ||
172 | Introduced in Perl 5.10.0 | |
173 | ||
9f28b5b1 RS |
174 | Using this feature triggers warnings in the category |
175 | C<experimental::lexical_topic>. | |
176 | ||
42e73e1c | 177 | =item Backtracking control verbs |
178 | ||
179 | C<(*ACCEPT)> | |
180 | ||
181 | Introduced in: Perl 5.10 | |
182 | ||
183 | See also: L<perlre/"Special Backtracking Control Verbs"> | |
184 | ||
185 | =item Code expressions, conditional expressions, and independent expressions in regexes | |
186 | ||
42e73e1c | 187 | |
188 | =item gv_try_downgrade | |
189 | ||
190 | See also L<perlintern> | |
191 | ||
192 | =item Experimental Support for Sun Studio Compilers for Linux OS | |
193 | ||
194 | See also L<perllinux> | |
195 | ||
196 | =item Pluggable keywords | |
197 | ||
198 | See L<perlapi/PL_keyword_plugin> for the mechanism. | |
199 | ||
200 | Introduced in: Perl 5.11.2 | |
201 | ||
fe8d2675 AT |
202 | =item Array and hash container functions accept references |
203 | ||
204 | Introduced in Perl 5.14.0 | |
205 | ||
ca40957e FC |
206 | =item Lexical subroutines |
207 | ||
208 | Introduced in: Perl 5.18 | |
209 | ||
210 | See also: L<perlsub/Lexical Subroutines> | |
211 | ||
9f28b5b1 RS |
212 | Using this feature triggers warnings in the category |
213 | C<experimental::lexical_subs>. | |
214 | ||
fe8d2675 AT |
215 | =item Regular Expression Set Operations |
216 | ||
217 | Introduced in: Perl 5.18 | |
218 | ||
219 | See also: L<perlrecharclass/Extended Bracketed Character Classes> | |
220 | ||
9f28b5b1 RS |
221 | Using this feature triggers warnings in the category |
222 | C<experimental::regex_sets>. | |
223 | ||
42e73e1c | 224 | =back |
225 | ||
226 | =head2 Accepted features | |
227 | ||
228 | These features were so wildly successful and played so well with others that | |
229 | we decided to remove their experimental status and admit them as full, stable | |
230 | features in the world of Perl, lavishing all the benefits and luxuries thereof. | |
231 | They are also awarded +5 Stability and +3 Charisma. | |
232 | ||
233 | =over 8 | |
234 | ||
2171640d KW |
235 | =item The C<\N> regex character class |
236 | ||
237 | The C<\N> character class, not to be confused with the named character | |
238 | sequence C<\N{NAME}>, denotes any non-newline character in a regular | |
239 | expression. | |
240 | ||
241 | Introduced in: Perl 5.12 | |
42e73e1c | 242 | |
fe8d2675 AT |
243 | =item fork() emulation |
244 | ||
245 | Introduced in Perl 5.6.1 | |
246 | ||
247 | See also L<perlfork> | |
248 | ||
249 | =item DB module | |
250 | ||
251 | Introduced in Perl 5.6.0 | |
252 | ||
253 | See also L<perldebug>, L<perldebtut> | |
254 | ||
255 | =item Weak references | |
256 | ||
257 | Introduced in Perl 5.6.0 | |
258 | ||
259 | =item Internal file glob | |
260 | ||
261 | Introduced in Perl 5.6.0 | |
262 | ||
263 | =item die accepts a reference | |
264 | ||
265 | Introduced in Perl 5.005 | |
266 | ||
267 | =item 64-bit support | |
268 | ||
269 | Introduced in Perl 5.005 | |
270 | ||
42e73e1c | 271 | =back |
272 | ||
273 | =head2 Removed features | |
274 | ||
275 | These features are no longer considered experimental and their functionality | |
276 | has disappeared. It's your own fault if you wrote production programs using | |
277 | these features after we explicitly told you not to (see L<perlpolicy>). | |
278 | ||
279 | =over 8 | |
280 | ||
281 | =item C<legacy> | |
282 | ||
283 | The experimental C<legacy> pragma was swallowed by the C<feature> pragma. | |
284 | ||
285 | Introduced in: 5.11.2 | |
286 | ||
287 | Removed in: 5.11.3 | |
288 | ||
fe8d2675 AT |
289 | =item Assertions |
290 | ||
291 | The C<-A> command line switch | |
292 | ||
293 | Introduced in Perl 5.9.0 | |
294 | ||
295 | Removed in Perl 5.9.5 | |
296 | ||
297 | =item Test::Harness::Straps | |
298 | ||
299 | Moved from Perl 5.10.1 to CPAN | |
300 | ||
301 | =item GetOpt::Long Options can now take multiple values at once (experimental) | |
302 | ||
303 | C<Getopt::Long> upgraded to version 2.35 | |
304 | ||
305 | Removed in Perl 5.8.8 | |
306 | ||
307 | =item The pseudo-hash data type | |
308 | ||
309 | Introduced in Perl 5.6.0 | |
310 | ||
311 | Removed in Perl 5.9.0 | |
312 | ||
313 | =item 5.005-style threading | |
314 | ||
315 | Introduced in Perl 5.005 | |
316 | ||
317 | Removed in Perl 5.10 | |
318 | ||
319 | =item perlcc | |
320 | ||
321 | Introduced in Perl 5.005 | |
322 | ||
323 | Moved from Perl 5.9.0 to CPAN | |
324 | ||
42e73e1c | 325 | =back |
326 | ||
327 | =head1 AUTHORS | |
328 | ||
329 | brian d foy C<< <brian.d.foy@gmail.com> >> | |
330 | ||
fe8d2675 AT |
331 | SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >> |
332 | ||
42e73e1c | 333 | =head1 COPYRIGHT |
334 | ||
335 | Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >> | |
336 | ||
337 | =head1 LICENSE | |
338 | ||
339 | You can use and redistribute this document under the same terms as Perl | |
340 | itself. | |
341 | ||
342 | =cut |