This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - 'nonexistent' should be 'non-existent'
[perl5.git] / pod / perl5191delta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 perl5191delta - what is new for perl v5.19.1
6
7 =head1 DESCRIPTION
8
9 This document describes differences between the 5.19.0 release and the 5.19.1
10 release.
11
12 =head1 Core Enhancements
13
14 No new features have been added.
15
16 =head1 Security
17
18 There are no new security issues.
19
20 =head1 Incompatible Changes
21
22 =head2 Most regex engine global state eliminated
23
24 As part of this series of fixes it was necessary to change the API of
25 Perl_re_intuit_start().  See L</Internal Changes> for more.
26
27 =head2 Locale decimal point character no longer leaks outside of S<C<use locale>> scope
28
29 This is actually a bug fix, but some code has come to rely on the bug
30 being present, so this change is listed here.  The current locale that
31 the program is running under is not supposed to be visible to Perl code
32 except within the scope of a S<C<use locale>>.  However, until now under
33 certain circumstances, the character used for a decimal point (often a
34 comma) leaked outside the scope.  If your code is affected by this
35 change, simply add a S<C<use locale>>.
36
37 =head1 Performance Enhancements
38
39 =over 4
40
41 =item *
42
43 Perl has a new copy-on-write mechanism that avoids the need to copy the
44 internal string buffer when assigning from one scalar to another. This
45 makes copying large strings appear much faster.  Modifying one of the two
46 (or more) strings after an assignment will force a copy internally. This
47 makes it unnecessary to pass strings by reference for efficiency.
48
49 This feature was already available in 5.18.0, but wasn't enabled by
50 default. It is the default now, and so you no longer need build perl with
51 the F<Configure> argument:
52
53     -Accflags=PERL_NEW_COPY_ON_WRITE
54
55 It can be disabled (for now) in a perl build with:
56
57     -Accflags=PERL_NO_COW
58
59 =back
60
61 =head1 Modules and Pragmata
62
63 =head2 Updated Modules and Pragmata
64
65 =over 4
66
67 =item *
68
69 L<Archive::Tar> has been upgraded from version 1.90 to 1.92.
70
71 =item *
72
73 L<Attribute::Handlers> has been upgraded from version 0.94 to 0.95.
74
75 =item *
76
77 L<autodie> has been upgraded from version 2.13 to 2.19.
78
79 =item *
80
81 L<B> has been upgraded from version 1.42 to 1.43.
82
83 =item *
84
85 L<B::Concise> has been upgraded from version 0.95 to 0.96.
86
87 =item *
88
89 L<B::Deparse> has been upgraded from version 1.20 to 1.21.
90
91 C<foreach my $lexical> is now deparsed correctly with the B<-p> option.
92 [RT #117081]
93
94 The B<-l> option no longer puts form feeds in the middle of a line when
95 outputting C<map> and C<grep> blocks. [RT #117311]
96
97 Elements of C<%#>, such as C<$# {foo}> and C<${#}{foo}> are now deparsed
98 correctly. [RT #117531]
99
100 =item *
101
102 L<Benchmark> has been upgraded from version 1.15 to 1.16.
103
104 =item *
105
106 L<Carp> has been upgraded from version 1.29 to 1.30.
107
108 =item *
109
110 L<Compress::Raw::Bzip2> has been upgraded from version 2.060 to 2.061.
111
112 =item *
113
114 L<Compress::Raw::Zlib> has been upgraded from version 2.060 to 2.061.
115
116 =item *
117
118 L<Config::Perl::V> has been upgraded from version 0.17 to 0.18.
119
120 =item *
121
122 L<CPAN::Meta> has been upgraded from version 2.120921 to 2.131560.
123
124 =item *
125
126 L<Data::Dumper> has been upgraded from version 2.145 to 2.146.
127
128 =item *
129
130 L<DB> has been updated from 1.05 to 1.06 and L<perl5db.pl> from 1.39_10
131 to 1.40.
132
133 The call depth allowed by default in the debugger is now 1000
134 rather than 100.
135
136 =item *
137
138 L<DB_File> has been upgraded from version 1.827 to 1.828.
139
140 =item *
141
142 L<Encode> has been upgraded from version 2.49 to 2.51.
143
144 =item *
145
146 L<ExtUtils::Install> has been upgraded from version 1.59 to 1.60.
147
148 =item *
149
150 L<ExtUtils::MakeMaker> has been upgraded from version 6.66 to 6.68.
151
152 =item *
153
154 L<ExtUtils::ParseXS> has been upgraded from version 3.18 to 3.19.
155
156 =item *
157
158 L<File::Copy> has been upgraded from version 2.26 to 2.27.
159
160 =item *
161
162 L<File::DosGlob> has been upgraded from version 1.10 to 1.11.
163
164 =item *
165
166 L<File::Fetch> has been upgraded from version 0.38 to 0.42.
167
168 =item *
169
170 L<File::Find> has been upgraded from version 1.23 to 1.24.
171
172 =item *
173
174 L<File::Spec> has been upgraded from version 3.40 to 3.41.
175
176 C<tmpdir> now respects changes to environment variables from which the
177 temporary directory is derived. [RT #88940]
178
179 =item *
180
181 L<File::Temp> has been upgraded from version 0.23 to 0.2301.
182
183 =item *
184
185 L<Filter::Simple> has been upgraded from version 0.89 to 0.90.
186
187 =item *
188
189 L<Filter::Util::Call> has been upgraded from version 1.45 to 1.49.
190
191 =item *
192
193 L<Getopt::Long> has been upgraded from version 2.39 to 2.4.
194
195 =item *
196
197 L<Hash::Util::FieldHash> has been upgraded from version 1.10 to 1.11.
198
199 =item *
200
201 L<HTTP::Tiny> has been upgraded from version 0.025 to 0.031.
202
203 =item *
204
205 L<IPC::Open3> has been upgraded from version 1.13 to 1.14.
206
207 =item *
208
209 L<Locale::Maketext> has been upgraded from version 1.23 to 1.24.
210
211 =item *
212
213 L<Math::BigInt> has been upgraded from version 1.9991 to 1.9992.
214
215 =item *
216
217 L<Math::BigRat> has been upgraded from version 0.2604 to 0.2606.
218
219 =item *
220
221 L<Module::Build> has been upgraded from version 0.4003 to 0.4005.
222
223 =item *
224
225 L<Module::CoreList> has been upgraded from version 2.91 to 2.92.
226
227 Adds L<Module::CoreList::Utils> which provides information on which core and
228 dual-life utilities shipped with each version of L<perl>.
229
230 =item *
231
232 L<Module::Metadata> has been upgraded from version 1.000011 to 1.000014.
233
234 =item *
235
236 L<mro> has been upgraded from version 1.11 to 1.12.
237
238 =item *
239
240 L<Net::Ping> has been upgraded from version 2.41 to 2.42.
241
242 =item *
243
244 L<perlfaq> has been upgraded from version 5.0150042 to 5.0150043.
245
246 =item *
247
248 L<Pod::Html> has been upgraded from version 1.18 to 1.19.
249
250 =item *
251
252 L<Pod::Parser> has been upgraded from version 1.60 to 1.61.
253
254 =item *
255
256 L<Pod::Perldoc> has been upgraded from version 3.19 to 3.20.
257
258 =item *
259
260 L<Pod::Usage> has been upgraded from version 1.61 to 1.63.
261
262 =item *
263
264 L<POSIX> has been upgraded from version 1.32 to 1.33.
265
266 =item *
267
268 L<re> has been upgraded from version 0.23 to 0.25.
269
270 =item *
271
272 L<Safe> has been upgraded from version 2.35 to 2.36.
273
274 =item *
275
276 L<Storable> has been upgraded from version 2.42 to 2.43.
277
278 =item *
279
280 L<Sys::Hostname> has been upgraded from version 1.17 to 1.18.
281
282 =item *
283
284 L<Sys::Syslog> has been upgraded from version 0.32 to 0.33.
285
286 =item *
287
288 L<Term::ReadLine> has been upgraded from version 1.12 to 1.13.
289
290 =item *
291
292 L<Test::Harness> has been upgraded from version 3.26 to 3.28
293
294 Memory usage is dramatically reduced. t/harness now uses about 10% of the
295 memory used by 3.26 and earlier.
296
297 C<PERL5LIB> is always propagated to a test's C<@INC>, even under C<-T>.
298
299 =item *
300
301 L<threads> has been upgraded from version 1.86 to 1.87.
302
303 =item *
304
305 L<threads::shared> has been upgraded from version 1.43 to 1.44.
306
307 =item *
308
309 L<Tie::File> has been upgraded from version 0.99 to 1.00.
310
311 =item *
312
313 L<Time::Piece> has been upgraded from version 1.20_01 to 1.2002.
314
315 =item *
316
317 L<Unicode::Collate> has been upgraded from version 0.97 to 0.98.
318
319 =item *
320
321 L<Unicode::UCD> has been upgraded from version 0.51 to 0.52.
322
323 A function, L<Unicode::UCD/search_invlist()> is now available to do
324 search an inversion list or map for a code point.
325
326 =back
327
328 =head1 Documentation
329
330 =head2 Changes to Existing Documentation
331
332 =head3 L<perlfunc>
333
334 =over
335
336 =item *
337
338 C<goto EXPR> is now documented to handle an expression that evalutes to a
339 code reference as if it was C<goto &$coderef>.  This behavior is at least ten
340 years old.
341
342 =item *
343
344 C<eval EXPR> now has caveats about expanding floating point numbers in some
345 locales
346
347 =item *
348
349 Noted that C<chop> and C<chomp> can reset the hash iterator
350
351 =item *
352
353 Improved C<fileno> example
354
355 =back
356
357 =head3 L<perlexperiment>
358
359 =over
360
361 =item *
362
363 C<\s> matching C<\cK> is marked experimental
364
365 =item *
366
367 ithreads were accepted in 5.8.0
368
369 =item *
370
371 Long doubles are not experimental
372
373 =back
374
375 =head3 L<perllocale>
376
377 =over
378
379 =item *
380
381 Update to mention fc(), \F
382
383 =back
384
385 =head3 L<perltrap>
386
387 =over 4
388
389 =item *
390
391 There is now a L<JavaScript|perltrap/JavaScript Traps> section.
392
393 =back
394
395 =head1 Diagnostics
396
397 The following additions or changes have been made to diagnostic output,
398 including warnings and fatal error messages.  For the complete list of
399 diagnostic messages, see L<perldiag>.
400
401 =head3 New Warnings
402
403 =over 4
404
405 =item *
406
407 L<A sequence of multiple spaces in a charnames alias definition is deprecated|perldiag/"A sequence of multiple spaces in a charnames alias definition is deprecated">
408
409 L<Trailing white-space in a charnames alias definition is deprecated|perldiag/"Trailing white-space in a charnames alias definition is deprecated">
410
411 These two deprecation warnings involving C<\N{...}> were incorrectly
412 implemented.  They did not warn by default (now they do) and could not be
413 made fatal via C<< use warnings FATAL => 'deprecated' >> (now they can).
414
415 =back
416
417 =head1 Utility Changes
418
419 =head3 F<bisect.pl> enhancements
420
421 The git bisection tool F<Porting/bisect.pl> has had many enhancements.
422
423 =over 4
424
425 =item *
426
427 Can optionally run the test case with a timeout.
428
429 =item *
430
431 Can now run in-place in a clean git checkout.
432
433 =item *
434
435 Can run the test case under C<valgrind>.
436
437 =item *
438
439 Can apply user supplied patches and fixes to the source checkout before
440 building.
441
442 =item *
443
444 Now has fixups to enable building several more historical ranges of bleadperl,
445 which can be useful for pinpointing the origins of bugs or behaviour changes.
446
447 =back
448
449 It is provided as part of the source distribution but not installed because
450 it is not self-contained as it relies on being run from within a git
451 checkout. Note also that it makes no attempt to fix tests, correct runtime
452 bugs or make something useful to install - its purpose is to make minimal
453 changes to get any historical revision of interest to build and run as close
454 as possible to "as-was", and thereby make C<git bisect> easy to use.
455
456 =head1 Platform Support
457
458 =head2 Discontinued Platforms
459
460 =over 4
461
462 =item DG/UX
463
464 DG/UX was a Unix sold by Data General. The last release was in April 2001.
465 It only runs on Data General's own hardware.
466
467 =back
468
469 =head2 Platform-Specific Notes
470
471 =over 4
472
473 =item Mixed-endian platforms
474
475 The code supporting C<pack> and C<unpack> operations on mixed endian
476 platforms has been removed. We believe that Perl has long been unable to
477 build on mixed endian architectures (such as PDP-11s), so we don't think
478 that this change will affect any platforms which are able to build v5.18.0.
479
480 =item Windows
481
482 The BUILD_STATIC and ALL_STATIC makefile options for linking some or (nearly)
483 all extensions statically (into perl519.dll, and into a separate
484 perl-static.exe too) were broken for MinGW builds. This has now been fixed.
485
486 The ALL_STATIC option has also been improved to include the Encode and Win32
487 extensions (for both VC++ and MinGW builds).
488
489 =back
490
491 =head1 Internal Changes
492
493 =over 4
494
495 =item *
496
497 Perl's new copy-on-write mechanism  (which is now enabled by default),
498 allows any C<SvPOK> scalar to be automatically upgraded to a copy-on-write
499 scalar when copied. A reference count on the string buffer is stored in
500 the string buffer itself.
501
502 For example:
503
504     $ perl -MDevel::Peek -e'$a="abc"; $b = $a; Dump $a; Dump $b'
505     SV = PV(0x260cd80) at 0x2620ad8
506       REFCNT = 1
507       FLAGS = (POK,IsCOW,pPOK)
508       PV = 0x2619bc0 "abc"\0
509       CUR = 3
510       LEN = 16
511       COW_REFCNT = 1
512     SV = PV(0x260ce30) at 0x2620b20
513       REFCNT = 1
514       FLAGS = (POK,IsCOW,pPOK)
515       PV = 0x2619bc0 "abc"\0
516       CUR = 3
517       LEN = 16
518       COW_REFCNT = 1
519
520 Note that both scalars share the same PV buffer and have a COW_REFCNT
521 greater than zero.
522
523 This means that XS code which wishes to modify the C<SvPVX()> buffer of an
524 SV should call C<SvPV_force()> or similar first, to ensure a valid (and
525 unshared) buffer, and to call C<SvSETMAGIC()> afterwards. This in fact has
526 always been the case (for example hash keys were already copy-on-write);
527 this change just spreads the COW behaviour to a wider variety of SVs.
528
529 One important difference is that before 5.18.0, shared hash-key scalars
530 used to have the C<SvREADONLY> flag set; this is no longer the case.
531
532 This new behaviour can still be disabled by running F<Configure> with
533 B<-Accflags=-DPERL_NO_COW>.  This option will probably be removed in Perl
534 5.22.
535
536 =item *
537
538 C<PL_sawampersand> is now a constant.  The switch this variable provided
539 (to enable/disable the pre-match copy depending on whether C<$&> had been
540 seen) has been removed and replaced with copy-on-write, eliminating a few
541 bugs.
542
543 The previous behaviour can still be enabled by running F<Configure> with
544 B<-Accflags=-DPERL_SAWAMPERSAND>.
545
546 =item *
547
548 The functions C<my_swap>, C<my_htonl> and C<my_ntohl> have been removed.
549 It is unclear why these functions were ever marked as I<A>, part of the
550 API. XS code can't call them directly, as it can't rely on them being
551 compiled. Unsurprisingly, no code on CPAN references them.
552
553 =item *
554
555 The signature of the C<Perl_re_intuit_start()> regex function has changed;
556 the function pointer C<intuit> in the regex engine plugin structure
557 has also changed accordingly. A new parameter, C<strbeg> has been added;
558 this has the same meaning as the same-named parameter in
559 C<Perl_regexec_flags>. Previously intuit would try to guess the start of
560 the string from the passed SV (if any), and would sometimes get it wrong
561 (e.g. with an overloaded SV).
562
563 =item *
564
565 XS code may use various macros to change the case of a character or code
566 point (for example C<toLOWER_utf8()>).  Only a couple of these were
567 documented until now;
568 and now they should be used in preference to calling the underlying
569 functions.  See L<perlapi/Character case changing>.
570
571 =item *
572
573 The code dealt rather inconsistently with uids and gids. Some
574 places assumed that they could be safely stored in UVs, others
575 in IVs, others in ints. Four new macros are introduced:
576 SvUID(), sv_setuid(), SvGID(), and sv_setgid()
577
578 =back
579
580 =head1 Selected Bug Fixes
581
582 =over 4
583
584 =item *
585
586 The OP allocation code now returns correctly aligned memory in all cases
587 for C<struct pmop>. Previously it could return memory only aligned to a
588 4-byte boundary, which is not correct for an ithreads build with 64 bit IVs
589 on some 32 bit platforms. Notably, this caused the build to fail completely
590 on sparc GNU/Linux. [RT #118055]
591
592 =item *
593
594 The debugger's C<man> command been fixed. It was broken in the v5.18.0
595 release. The C<man> command is aliased to the names C<doc> and C<perldoc> -
596 all now work again.
597
598 =item *
599
600 C<@_> is now correctly visible in the debugger, fixing a regression
601 introduced in v5.18.0's debugger. [RT #118169]
602
603 =item *
604
605 Evaluating large hashes in scalar context is now much faster, as the number
606 of used chains in the hash is now cached for larger hashes. Smaller hashes
607 continue not to store it and calculate it when needed, as this saves one IV.
608 That would be 1 IV overhead for every object built from a hash. [RT #114576]
609
610 =item *
611
612 Fixed a small number of regexp constructions that could either fail to
613 match or crash perl when the string being matched against was
614 allocated above the 2GB line on 32-bit systems. [RT #118175]
615
616 =item *
617
618 Perl v5.16 inadvertently introduced a bug whereby calls to XSUBs that were
619 not visible at compile time were treated as lvalues and could be assigned
620 to, even when the subroutine was not an lvalue sub.  This has been fixed.
621 [RT #117947]
622
623 =item *
624
625 In Perl v5.18.0 dualvars that had an empty string for the string part but a
626 non-zero number for the number part starting being treated as true.  In
627 previous versions they were treated as false, the string representation
628 taking precedeence.  The old behaviour has been restored. [RT #118159]
629
630 =item *
631
632 Since Perl v5.12, inlining of constants that override built-in keywords of
633 the same name had countermanded C<use subs>, causing subsequent mentions of
634 the constant to use the built-in keyword instead.  This has been fixed.
635
636 =item *
637
638 Lexical constants (C<my sub a() { 42 }>) no longer crash when inlined.
639
640 =item *
641
642 Parameter prototypes attached to lexical subroutines are now respected when
643 compiling sub calls without parentheses.  Previously, the prototypes were
644 honoured only for calls I<with> parentheses. [RT #116735]
645
646 =item *
647
648 Syntax errors in lexical subroutines in combination with calls to the same
649 subroutines no longer cause crashes at compile time.
650
651 =item *
652
653 Deep recursion warnings no longer crash lexical subroutines. [RT #118521]
654
655 =item *
656
657 The warning produced by C<-l $handle> now applies to IO refs and globs, not
658 just to glob refs.  That warning is also now UTF8-clean. [RT #117595]
659
660 =item *
661
662 Various memory leaks involving the parsing of the C<(?[...])> regular
663 expression construct have been fixed.
664
665 =item *
666
667 C<(?[...])> now allows interpolation of precompiled patterns consisting of
668 C<(?[...])> with bracketed character classes inside (C<$pat =
669 S<qr/(?[ [a] ])/;> S</(?[ $pat ])/>>).  Formerly, the brackets would
670 confuse the regular expression parser.
671
672 =item *
673
674 The "Quantifier unexpected on zero-length expression" warning message could
675 appear twice starting in Perl v5.10 for a regular expression also
676 containing alternations (e.g., "a|b") triggering the trie optimisation.
677
678 =item *
679
680 C<delete local $ENV{nonexistent_env_var}> no longer leaks memory.
681
682 =item *
683
684 C<sort> and C<require> followed by a keyword prefixed with C<CORE::> now
685 treat it as a keyword, and not as a subroutine or module name. [RT #24482]
686
687 =item *
688
689 Through certain conundrums, it is possible to cause the current package to
690 be freed.  Certain operators (C<bless>, C<reset>, C<open>, C<eval>) could
691 not cope and would crash.  They have been made more resilient. [RT #117941]
692
693 =item *
694
695 Aliasing filehandles through glob-to-glob assignment would not update
696 internal method caches properly if a package of the same name as the
697 filehandle existed, resulting in filehandle method calls going to the
698 package instead.  This has been fixed.
699
700 =item *
701
702 C<./Configure -de -Dusevendorprefix> didn't default [RT #64126]
703
704 =item *
705
706 The C<Statement unlikely to be reached> warning was listed in
707 L<perldiag> as an C<exec>-category warning, but was enabled and disabled
708 by the C<syntax> category.  On the other hand, the C<exec> category
709 controlled its fatal-ness.  It is now entirely handled by the C<exec>
710 category.
711
712 =item *
713
714 The "Replacement list is longer that search list" warning for C<tr///> and
715 C<y///> no longer occurs in the presence of the C</c> flag. [RT #118047]
716
717 =item *
718
719 Perl v5.18 inadvertently introduced a bug whereby interpolating mixed up-
720 and down-graded UTF-8 strings in a regex could result in malformed UTF-8
721 in the pattern: specifically if a downgraded character in the range
722 C<\x80..\xff> followed a UTF-8 string, e.g.
723
724     utf8::upgrade(  my $u = "\x{e5}");
725     utf8::downgrade(my $d = "\x{e5}");
726     /$u$d/
727
728 [RT #118297]
729
730 =item *
731
732 Stringification of NVs are not cached so that the lexical locale controls
733 stringification of the decimal point [perl #108378] [perl #115800]
734
735 =back
736
737 =head1 Acknowledgements
738
739 Perl 5.19.1 represents approximately 4 weeks of development since Perl 5.19.0
740 and contains approximately 26,000 lines of changes across 680 files from 37
741 authors.
742
743 Perl continues to flourish into its third decade thanks to a vibrant community
744 of users and developers. The following people are known to have contributed the
745 improvements that became Perl 5.19.1:
746
747 Alexandr Ciornii, Brian Fraser, Chris 'BinGOs' Williams, Craig A. Berry,
748 Dagfinn Ilmari Mannsåker, Daniel Dragan, David Golden, David Mitchell, David
749 Steinbrunner, Dominic Hargreaves, Eric Brine, Father Chrysostomos, H.Merijn
750 Brand, Heiko Eissfeldt, James E Keenan, Jerry D. Hedden, Kang-min Liu, Karl
751 Williamson, Leon Timmermans, Lukas Mai, Marcel Grünauer, Mark Jason Dominus,
752 Max Maischein, Mike Doherty, Nicholas Clark, Paul Green, Peter Martini, Petr
753 Písař, Ricardo Signes, Shirakata Kentaro, Shlomi Fish, Steffen Müller, Steve
754 Hay, Sullivan Beck, Tony Cook, Yves Orton, Zsbán Ambrus.
755
756 The list above is almost certainly incomplete as it is automatically generated
757 from version control history. In particular, it does not include the names of
758 the (very much appreciated) contributors who reported issues to the Perl bug
759 tracker.
760
761 Many of the changes included in this version originated in the CPAN modules
762 included in Perl's core. We're grateful to the entire CPAN community for
763 helping Perl to flourish.
764
765 For a more complete list of all of Perl's historical contributors, please see
766 the F<AUTHORS> file in the Perl source distribution.
767
768 =head1 Reporting Bugs
769
770 If you find what you think is a bug, you might check the articles recently
771 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
772 http://rt.perl.org/perlbug/ .  There may also be information at
773 http://www.perl.org/ , the Perl Home Page.
774
775 If you believe you have an unreported bug, please run the L<perlbug> program
776 included with your release.  Be sure to trim your bug down to a tiny but
777 sufficient test case.  Your bug report, along with the output of C<perl -V>,
778 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
779
780 If the bug you are reporting has security implications, which make it
781 inappropriate to send to a publicly archived mailing list, then please send it
782 to perl5-security-report@perl.org.  This points to a closed subscription
783 unarchived mailing list, which includes all the core committers, who will be
784 able to help assess the impact of issues, figure out a resolution, and help
785 co-ordinate the release of patches to mitigate or fix the problem across all
786 platforms on which Perl is supported.  Please only use this address for
787 security issues in the Perl core, not for modules independently distributed on
788 CPAN.
789
790 =head1 SEE ALSO
791
792 The F<Changes> file for an explanation of how to view exhaustive details on
793 what changed.
794
795 The F<INSTALL> file for how to build Perl.
796
797 The F<README> file for general stuff.
798
799 The F<Artistic> and F<Copying> files for copyright information.
800
801 =cut