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