This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
begin filling the 5.16.0 delta from 5.15.0
[perl5.git] / Porting / perl5160delta.pod
CommitLineData
30682cc3
RS
1=encoding utf8
2
3=head1 NAME
4
92221470 5perl5160delta - what is new for perl v5.16.0
30682cc3
RS
6
7=head1 DESCRIPTION
8
9This document describes differences between the 5.14.0 release and
10the 5.16.0 release.
11
12If you are upgrading from an earlier release such as 5.12.0, first read
13L<perl5140delta>, which describes differences between 5.12.0 and
145.14.0.
15
16=head1 Notice
17
18XXX Any important notices here
19
20=head1 Core Enhancements
21
a14d7d4a
RS
22=head2 C<CORE::> works on all keywords
23
24The C<CORE::> prefix can now be used on keywords enabled by
25L<feature.pm|feature>, even outside the scope of C<use feature>. Relevant
26documentation files L<CORE>, L<feature>, L<perlfunc>, L<perlsub>, and
27L<perlsyn> have been updated.
28
29=head2 C<continue> no longer requires the "switch" feature
30
31The C<continue> keyword has two meanings. It can introduce a C<continue>
32block after a loop, or it can exit the current C<when> block. Up till now,
33the latter meaning was only valid with the "switch" feature enabled, and
34was a syntax error otherwise. Since the main purpose of feature.pm is to
35avoid conflicts with user-defined subroutines, there is no reason for
36C<continue> to depend on it.
37
38=head2 C<$$> can be assigned to
39
40C<$$> was made read-only in Perl 5.8.0. But only sometimes: C<local $$>
41would make it writable again. Some CPAN modules were using C<local $$> or
42XS code to bypass the read-only check, so there is no reason to keep C<$$>
43read-only. (This change also allowed a bug to be fixed while maintaining
44backward compatibility.)
45
46=head2 Features inside the debugger
47
48The current Perl's feature bundle is now enabled for commands entered in
49the interactive debugger.
50
51=head2 C<\N{...}> can now have Unicode loose name matching
52
53This is described in the C<charnames> item in
54L</Updated Modules and Pragmata> below.
55
56=head2 Breakpoints with file names
57
58The debugger's "b" command for setting breakpoints now allows a line number
59to be prefixed with a file name. See
60L<perldebug/"b [file]:[line] [condition]">.
30682cc3 61
30682cc3
RS
62
63=head1 Security
64
65XXX Any security-related notices go here. In particular, any security
66vulnerabilities closed should be noted here rather than in the
67L</Selected Bug Fixes> section.
68
69[ List each security issue as a =head2 entry ]
70
71=head1 Incompatible Changes
72
a14d7d4a
RS
73=head2 Tying scalars that hold typeglobs
74
75Attempting to tie a scalar after a typeglob was assigned to it would
76instead tie the handle in the typeglob's IO slot. This meant that it was
77impossible to tie the scalar itself. Similar problems affected C<tied> and
78C<untie>: C<tied $scalar> would return false on a tied scalar if the last
79thing returned was a typeglob, and C<untie $scalar> on such a tied scalar
80would do nothing.
30682cc3 81
a14d7d4a
RS
82We fixed this problem before Perl 5.14.0, but it caused problems with some
83CPAN modules, so we put in a deprecation cycle instead.
30682cc3 84
a14d7d4a
RS
85Now the deprecation has been removed and this bug has been fixed. So
86C<tie $scalar> will always tie the scalar, not the handle it holds. To tie
87the handle, use C<tie *$scalar> (with an explicit asterisk). The same
88applies to C<tied *$scalar> and C<untie *$scalar>.
89
90=head2 IPC::Open3 no longer provides C<xfork()>, C<xclose_on_exec()>
91and C<xpipe_anon()>
92
93All three functions were private, undocumented and unexported. They do
94not appear to be used by any code on CPAN. Two have been inlined and one
95deleted entirely.
96
97=head2 C<$$> no longer caches PID
98
99Previously, if one embeds Perl or uses XS and calls fork(3) from C, Perls
100notion of C<$$> could go out of sync with what getpid() returns. By always
101fetching the value of C<$$> via getpid(), this potential bug is eliminated.
102Code that depends on the caching behavior will break. As described in
103L</Core Enhancements>, C<$$> is now writable, but it will be reset during a
104fork.
30682cc3
RS
105
106=head1 Deprecations
107
108XXX Any deprecated features, syntax, modules etc. should be listed here.
109In particular, deprecated modules should be listed here even if they are
110listed as an updated module in the L</Modules and Pragmata> section.
111
112[ List each deprecation as a =head2 entry ]
113
114=head1 Future Deprecations
115
116This section serves as a notice of feature that are I<likely> to be
117L<deprecated|perlpolicy/deprecated> in the next release of perl (5.18.0). If
118your code depends on these features, you should contact the Perl 5 Porters via
119the L<mailing list|http://lists.perl.org/list/perl5-porters.html> or L<perlbug>
120to explain your use case and inform the deprecation process.
121
122=head1 Performance Enhancements
123
124XXX Changes which enhance performance without changing behaviour go here. There
125may well be none in a stable release.
126
127[ List each enhancement as a =item entry ]
128
129=over 4
130
131=item *
132
133XXX
134
135=back
136
137=head1 Modules and Pragmata
138
139XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
140go here. If Module::CoreList is updated, generate an initial draft of the
141following sections using F<Porting/corelist-perldelta.pl>, which prints stub
142entries to STDOUT. Results can be pasted in place of the '=head2' entries
143below. A paragraph summary for important changes should then be added by hand.
144In an ideal world, dual-life modules would have a F<Changes> file that could be
145cribbed.
146
147[ Within each section, list entries as a =item entry ]
148
149=head2 New Modules and Pragmata
150
151=over 4
152
153=item *
154
155XXX
156
157=back
158
159=head2 Updated Modules and Pragmata
160
161=over 4
162
163=item *
164
165L<XXX> has been upgraded from version 0.69 to version 0.70.
166
167=back
168
169=head2 Removed Modules and Pragmata
170
a14d7d4a
RS
171As promised in Perl 5.14.0's release notes, the following modules have
172been removed from the core distribution, and if needed should be installed
173from CPAN instead.
174
175=over
30682cc3
RS
176
177=item *
178
a14d7d4a
RS
179C<Devel::DProf> has been removed from the Perl core. Prior version was 20110228.00.
180
181=item *
182
183C<Shell> has been removed from the Perl core. Prior version was 0.72_01.
30682cc3
RS
184
185=back
186
187=head1 Documentation
188
189XXX Changes to files in F<pod/> go here. Consider grouping entries by
190file and be sure to link to the appropriate page, e.g. L<perlfunc>.
191
192=head2 New Documentation
193
194XXX Changes which create B<new> files in F<pod/> go here.
195
196=head3 L<XXX>
197
198XXX Description of the purpose of the new file here
199
200=head2 Changes to Existing Documentation
201
202XXX Changes which significantly change existing files in F<pod/> go here.
203However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
204section.
205
206=head3 L<XXX>
207
208=over 4
209
210=item *
211
212XXX Description of the change here
213
214=back
215
216=head1 Diagnostics
217
218The following additions or changes have been made to diagnostic output,
219including warnings and fatal error messages. For the complete list of
220diagnostic messages, see L<perldiag>.
221
222XXX New or changed warnings emitted by the core's C<C> code go here. Also
223include any changes in L<perldiag> that reconcile it to the C<C> code.
224
225[ Within each section, list entries as a =item entry that links to perldiag,
226 e.g.
227
228 =item *
229
230 L<Invalid version object|perldiag/"Invalid version object">
231]
232
233=head2 New Diagnostics
234
235XXX Newly added diagnostic messages go here
236
237=head3 New Errors
238
239=over 4
240
241=item *
242
243XXX L<message|perldiag/"message">
244
245=back
246
247=head3 New Warnings
248
249=over 4
250
a14d7d4a 251=item L<Useless assignment to a temporary|perldiag/"Useless assignment to a temporary">
30682cc3 252
a14d7d4a
RS
253Assigning to a temporary returned from an XS lvalue subroutine now produces a
254warning [perl #31946].
255
256=back
30682cc3
RS
257
258=back
259
260=head2 Changes to Existing Diagnostics
261
262XXX Changes (i.e. rewording) of diagnostic messages go here
263
264=over 4
265
266=item *
267
268XXX Describe change here
269
270=back
271
272=head1 Utility Changes
273
274XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
275here. Most of these are built within the directories F<utils> and F<x2p>.
276
277[ List utility changes as a =head3 entry for each utility and =item
278entries for each change
279Use L<XXX> with program names to get proper documentation linking. ]
280
281=head3 L<XXX>
282
283=over 4
284
285=item *
286
287XXX
288
289=back
290
291=head1 Configuration and Compilation
292
a14d7d4a 293=over 4
30682cc3 294
a14d7d4a 295=item *
30682cc3 296
a14d7d4a
RS
297F<regexp.h> has been modified for compatibility with GCC's B<-Werror>
298option, as used by some projects that include perl's header files (5.14.1).
30682cc3
RS
299
300=item *
301
a14d7d4a
RS
302C<USE_LOCALE{,_COLLATE,_CTYPE,_NUMERIC}> have been added the output of perl -V
303as they have affect the behaviour of the interpreter binary (albeit only
304in a small area).
305
306=item *
307
308The code and tests for L<IPC::Open2> have been moved from F<ext/IPC-Open2>
309into F<ext/IPC-Open3>, as C<IPC::Open2::open2()> is implemented as a thin
310wrapper around C<IPC::Open3::_open3()>, and hence is very tightly coupled to
311it.
312
313=item *
314
315The magic types and magic vtables are now generated from data in a new script
316F<regen/mg_vtable.pl>, instead of being maintained by hand. As different EBCDIC
317variants can't agree on the code point for '~', the character to code point
318conversion is done at build time by F<generate_uudmap> to a new generated header
319F<mg_data.h>. C<PL_vtbl_bm> and C<PL_vtbl_fm> are now defined by the
320pre-processor as C<PL_vtbl_regexp>, instead of being distinct C variables.
321C<PL_vtbl_sig> has been removed.
322
323=item *
324
325Building with C<-DPERL_GLOBAL_STRUCT> works again. This configuration is not
326generally used.
327
328=item *
329
330Perl configured with I<MAD> now correctly frees C<MADPROP> structures when
331OPs are freed. C<MADPROP>s are now allocated with C<PerlMemShared_malloc()>
332
333=back
30682cc3
RS
334
335=back
336
337=head1 Testing
338
339XXX Any significant changes to the testing of a freshly built perl should be
340listed here. Changes which create B<new> files in F<t/> go here as do any
341large changes to the testing harness (e.g. when parallel testing was added).
342Changes to existing files in F<t/> aren't worth summarising, although the bugs
343that they represent may be covered elsewhere.
344
345[ List each test improvement as a =item entry ]
346
347=over 4
348
349=item *
350
351XXX
352
353=back
354
355=head1 Platform Support
356
357XXX Any changes to platform support should be listed in the sections below.
358
359[ Within the sections, list each platform as a =item entry with specific
360changes as paragraphs below it. ]
361
362=head2 New Platforms
363
364XXX List any platforms that this version of perl compiles on, that previous
365versions did not. These will either be enabled by new files in the F<hints/>
366directories, or new subdirectories and F<README> files at the top level of the
367source tree.
368
369=over 4
370
371=item XXX-some-platform
372
373XXX
374
375=back
376
377=head2 Discontinued Platforms
378
379XXX List any platforms that this version of perl no longer compiles on.
380
381=over 4
382
383=item XXX-some-platform
384
385XXX
386
387=back
388
389=head2 Platform-Specific Notes
390
391XXX List any changes for specific platforms. This could include configuration
392and compilation changes or changes in portability/compatibility. However,
393changes within modules for platforms should generally be listed in the
394L</Modules and Pragmata> section.
395
396=over 4
397
398=item XXX-some-platform
399
400XXX
401
402=back
403
404=head1 Internal Changes
405
406XXX Changes which affect the interface available to C<XS> code go here.
407Other significant internal changes for future core maintainers should
408be noted as well.
409
410[ List each change as a =item entry ]
411
412=over 4
413
414=item *
415
416XXX
417
418=back
419
420=head1 Selected Bug Fixes
421
a14d7d4a 422=head2 Regular expressions and character classes
30682cc3
RS
423
424=over 4
425
426=item *
427
a14d7d4a
RS
428The new (in 5.14.0) regular expression modifier C</a> when repeated like
429C</aa> forbids the characters outside the ASCII range that match
430characters inside that range from matching under C</i>. This did not
431work under some circumstances, all involving alternation, such as:
432
433 "\N{KELVIN SIGN}" =~ /k|foo/iaa;
434
435succeeded inappropriately. This is now fixed.
436
437=item *
438
4395.14.0 introduced some memory leaks in regular expression character
440classes such as C<[\w\s]>, which have now been fixed (5.14.1)
441
442=item *
443
444An edge case in regular expression matching could potentially loop.
445This happened only under C</i> in bracketed character classes that have
446characters with multi-character folds, and the target string to match
447against includes the first portion of the fold, followed by another
448character that has a multi-character fold that begins with the remaining
449portion of the fold, plus some more.
450
451 "s\N{U+DF}" =~ /[\x{DF}foo]/i
452
453is one such case. C<\xDF> folds to C<"ss">. (5.14.1)
454
455=item *
456
457A few characters in regular expression pattern matches did not
458match correctly in some circumstances, all involving C</i>. The
459affected characters are:
460COMBINING GREEK YPOGEGRAMMENI,
461GREEK CAPITAL LETTER IOTA,
462GREEK CAPITAL LETTER UPSILON,
463GREEK PROSGEGRAMMENI,
464GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA,
465GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS,
466GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA,
467GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS,
468LATIN SMALL LETTER LONG S,
469LATIN SMALL LIGATURE LONG S T,
470and
471LATIN SMALL LIGATURE ST.
472
473=item *
474
475Fixed memory leak regression in regular expression compilation
476under threading
477
478=back
479
480=head2 Formats
481
482=over
483
484=item *
485
486A number of edge cases have been fixed with formats and C<formline>;
487in particular, where the format itself is potentially variable (such as
488with ties and overloading), and where the format and data differ in their
489encoding. In both these cases, it used to possible for the output to be
490corrupted [perl #91032].
491
492=item *
493
494C<formline> no longer converts its argument into a string in-place. So
495passing a reference to C<formline> no longer destroys the reference
496[perl #79532].
497
498=back
499
500=head2 Copy-on-write scalars
501
502Copy-on-write scalars were introduced in 5.8.0, but most Perl code
503did not encounter them (they were used mostly internally). Perl
5045.10.0 extended them, such that assigning C<__PACKAGE__> or a
505hash key to a scalar would make it copy-on-write. Several parts
506of Perl were not updated to account for them, but have now been fixed.
507
508=over
509
510=item *
511
512C<utf8::decode> had a nasty bug that would modify copy-on-write scalars'
513string buffers in place (i.e., skipping the copy). This could result in
514hashes having two elements with the same key [perl #91834].
515
516=item *
517
518Lvalue subroutines were not allowing COW scalars to be returned. This was
519fixed for lvalue scalar context in Perl 5.12.3 and 5.14.0, but list context
520was not fixed until this release.
521
522=item *
523
524Elements of restricted hashes (see the L<fields> pragma) containing
525copy-on-write values couldn't be deleted, nor could such hashes be cleared
526(C<%hash = ()>).
527
528=item *
529
530Localising a tied variable used to make it read-only if it contained a
531copy-on-write string.
532
533=item *
534
535L<Storable>, L<Devel::Peek> and L<PerlIO::scalar> had similar problems.
536See L</Updated Modules and Pragmata>, above.
537
538=back
539
540=head2 lvalue subroutines
541
542There have been various fixes to lvalue subroutines.
543
544=over
545
546=item *
547
548Explicit return now returns the actual argument passed to return, instead
549of copying it [perl #72724] [perl #72706].
550
551B<Note:> There are still some discrepancies between explicit and implicit
552return, which will hopefully be resolved soon. So the exact behaviour is
553not set in stone yet.
554
555=item *
556
557Lvalue subroutines used to enforce lvalue syntax (i.e., whatever can go on
558the left-hand side of C<=>) for the last statement and the arguments to
559return. Since lvalue subroutines are not always called in lvalue context,
560this restriction has been lifted.
561
562=item *
563
564Lvalue subroutines are less restrictive as to what values can be returned.
565It used to croak on values returned by C<shift> and C<delete> and from
566other subroutines, but no longer does so [perl #71172].
567
568=item *
569
570Empty lvalue subroutines (C<sub :lvalue {}>) used to return C<@_> in list
571context. In fact, all subroutines used to, but regular subs were fixed in
572Perl 5.8.2. Now lvalue subroutines have been likewise fixed.
573
574=item *
575
576Lvalue subroutines used to copy their return values in rvalue context. Not
577only was this a waste of CPU cycles, but it also caused bugs. A C<($)>
578prototype would cause an lvalue sub to copy its return value [perl #51408],
579and C<while(lvalue_sub() =~ m/.../g) { ... }> would loop endlessly
580[perl #78680].
581
582=item *
583
584Autovivification now works on values returned from lvalue subroutines
585[perl #7946].
586
587=item *
588
589When called in pass-by-reference context (e.g., subroutine arguments or a list
590passed to C<for>), an lvalue subroutine returning arrays or hashes used to bind
591the arrays (or hashes) to scalar variables--something that is not supposed to
592happen. This could result in "Bizarre copy of ARRAY" errors or C<print>
593ignoring its arguments. It also made nonsensical code like C<@{\$_}> "work".
594This was fixed in 5.14.0 if an array were the first thing returned from the
595subroutine (but not for C<$scalar, @array> or hashes being returned). Now a
596more general fix has been applied [perl #23790].
597
598=item *
599
600When called in pass-by-reference context, lvalue subroutines used to copy
601any read-only value that was returned. E.g., C< sub :lvalue { $] } >
602would not return C<$]>, but a copy of it.
603
604=item *
605
606Assignment to C<keys> returned from an lvalue sub used not to work, but now
607it does.
608
609=item *
610
611Applying the C<:lvalue> attribute to an XSUB or to an aliased subroutine
612stub with C<< sub foo :lvalue; >> syntax stopped working in Perl 5.12.
613This has been fixed.
614
615=back
616
617=head2 Fixes related to hashes
618
619=over
620
621=item *
622
623A bug has been fixed that would cause a "Use of freed value in iteration"
624error if the next two hash elements that would be iterated over are
625deleted [perl #85026]. (5.14.1)
626
627=item *
628
629Freeing deeply nested hashes no longer crashes [perl #44225].
630
631=item *
632
633Deleting the current hash iterator (the hash element that would be returend
634by the next call to C<each>) in void context used not to free it. The hash
635would continue to reference it until the next iteration. This has been
636fixed [perl #85026].
637
638=back
639
640=head2 Other notable fixes
641
642=over
643
644=item *
645
646Passing the same constant subroutine to both C<index> and C<formline> no
647longer causes one or the other to fail [perl #89218]. (5.14.1)
648
649=item *
650
651List assignment to lexical variables declared with attributes in the same
652statement (C<my ($x,@y) : blimp = (72,94)>) stopped working in Perl 5.8.0.
653It has now been fixed.
654
655=item *
656
657Perl 5.10.0 introduced some faulty logic that made "U*" in the middle of
658a pack template equivalent to "U0" if the input string was empty. This has
659been fixed [perl #90160].
660
661=item *
662
663Destructors on objects were not called during global destruction on objects
664that were not referenced by any scalars. This could happen if an array
665element were blessed (e.g., C<bless \$a[0]>) or if a closure referenced a
666blessed variable (C<bless \my @a; sub foo { @a }>).
667
668Now there is an extra pass during global destruction to fire destructors on
669any objects that might be left after the usual passes that check for
670objects referenced by scalars [perl #36347].
671
672This bug fix was added in Perl 5.13.9, but caused problems with some CPAN
673modules that were relying on the bug. Since it was so close to Perl
6745.14.0, the fix was reverted in 5.13.10, to allow more time for the modules
675to adapt. Hopefully they will be fixed soon (see L</Known Problems>,
676below).
677
678=item *
679
680C<given> was not calling set-magic on the implicit lexical C<$_> that it
681uses. This meant, for example, that C<pos> would be remembered from one
682execution of the same C<given> block to the next, even if the input were a
683different variable [perl #84526].
684
685=item *
686
687The "R" command for restarting a debugger session has been fixed to work on
688Windows, or any other system lacking a C<POSIX::_SC_OPEN_MAX> constant
689[perl #87740].
690
691=item *
692
693Fixed a case where it was possible that a freed buffer may have been read
694from when parsing a here document [perl #90128]. (5.14.1)
695
696=item *
697
698The C<study> function could become confused if fed a string longer than
6992**31 characters. Now it simply skips such strings.
700
701=item *
702
703C<each(I<ARRAY>)> is now wrapped in C<defined(...)>, like C<each(I<HASH>)>,
704inside a C<while> condition [perl #90888].
705
706=item *
707
708In @INC filters (subroutines returned by subroutines in @INC), $_ used to
709misbehave: If returned from a subroutine, it would not be copied, but the
710variable itself would be returned; and freeing $_ (e.g., with C<undef *_>)
711would cause perl to crash. This has been fixed [perl #91880].
712
713=item *
714
715An ASCII single quote (') in a symbol name is meant to be equivalent to a
716double colon (::) except at the end of the name. It was not equivalent if
717followed by a null character, but now it is [perl #88138].
718
719=item *
720
721The abbreviations for four C1 control characters
722C<MW>
723C<PM>,
724C<RI>,
725and
726C<ST>
727were previously unrecognized by C<\N{}>,
728vianame(), and string_vianame().
729
730=item *
731
732Some cases of threads crashing due to memory allocation during cloning have
733been fixed [perl #90006].
734
735=item *
736
737Attempting to C<goto> out of a tied handle method used to cause memory
738corruption or crashes. Now it produces an error message instead
739[perl #8611].
740
741=item *
742
743Perl skips copying values returned from a subroutine if it thinks the value
744is not in use elsewhere. Due to faulty logic, this would happen with the
745result of C<delete>, C<shift> or C<splice>, even if the result was
746referenced elsewhere. So C<< \sub { delete $_[0] }->($x) >> would return a
747reference to C<$x>. This has been fixed [perl #91844].
30682cc3
RS
748
749=back
750
751=head1 Known Problems
752
753XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
754tests that had to be C<TODO>ed for the release would be noted here, unless
755they were specific to a particular platform (see below).
756
757This is a list of some significant unfixed bugs, which are regressions
758from either 5.XXX.XXX or 5.XXX.XXX.
759
760[ List each fix as a =item entry ]
761
762=over 4
763
764=item *
765
766XXX
767
768=back
769
770=head1 Obituary
771
772XXX If any significant core contributor has died, we've added a short obituary
773here.
774
775=head1 Acknowledgements
776
777XXX Generate this with:
778
fbea3025 779 perl Porting/acknowledgements.pl v5.15.7..HEAD
30682cc3
RS
780
781=head1 Reporting Bugs
782
783If you find what you think is a bug, you might check the articles
784recently posted to the comp.lang.perl.misc newsgroup and the perl
785bug database at http://rt.perl.org/perlbug/ . There may also be
786information at http://www.perl.org/ , the Perl Home Page.
787
788If you believe you have an unreported bug, please run the L<perlbug>
789program included with your release. Be sure to trim your bug down
790to a tiny but sufficient test case. Your bug report, along with the
791output of C<perl -V>, will be sent off to perlbug@perl.org to be
792analysed by the Perl porting team.
793
794If the bug you are reporting has security implications, which make it
795inappropriate to send to a publicly archived mailing list, then please send
796it to perl5-security-report@perl.org. This points to a closed subscription
797unarchived mailing list, which includes
798all the core committers, who will be able
799to help assess the impact of issues, figure out a resolution, and help
800co-ordinate the release of patches to mitigate or fix the problem across all
801platforms on which Perl is supported. Please only use this address for
802security issues in the Perl core, not for modules independently
803distributed on CPAN.
804
805=head1 SEE ALSO
806
807The F<Changes> file for an explanation of how to view exhaustive details
808on what changed.
809
810The F<INSTALL> file for how to build Perl.
811
812The F<README> file for general stuff.
813
814The F<Artistic> and F<Copying> files for copyright information.
815
816=cut