This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
update Perl::OSType from 1.002 to 1.003
[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
236 =item gv_try_downgrade
237
238 See also L<perlintern>
239
240 =item Experimental Support for Sun Studio Compilers for Linux OS
241
242 See also L<perllinux>
243
244 =item Pluggable keywords
245
246 See L<perlapi/PL_keyword_plugin> for the mechanism.
247
248 Introduced in: Perl 5.11.2
249
250 =item Lexical subroutines
251
252 Introduced in: Perl 5.18
253
254 See also: L<perlsub/Lexical Subroutines>
255
256 =back
257
258 =head2 Accepted features
259
260 These features were so wildly successful and played so well with others that
261 we decided to remove their experimental status and admit them as full, stable
262 features in the world of Perl, lavishing all the benefits and luxuries thereof. 
263 They are also awarded +5 Stability and +3 Charisma.
264
265 =over 8
266
267 =item The C<\N> regex character class
268
269 The C<\N> character class, not to be confused with the named character
270 sequence C<\N{NAME}>, denotes any non-newline character in a regular
271 expression.
272
273 Introduced in: Perl 5.12
274
275 =back
276
277 =head2 Removed features
278
279 These features are no longer considered experimental and their functionality
280 has disappeared. It's your own fault if you wrote production programs using
281 these features after we explicitly told you not to (see L<perlpolicy>).
282
283 =over 8
284
285 =item C<legacy>
286
287 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
288
289 Introduced in: 5.11.2
290
291 Removed in: 5.11.3
292
293 =back
294
295 =head1 AUTHORS
296
297 brian d foy C<< <brian.d.foy@gmail.com> >>
298
299 =head1 COPYRIGHT
300
301 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
302
303 =head1 LICENSE
304
305 You can use and redistribute this document under the same terms as Perl
306 itself.
307
308 =cut