Index: branches/vendor/third/perl/pod/perlpod.pod
===================================================================
--- branches/vendor/third/perl/pod/perlpod.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlpod.pod (revision 20074)
@@ -270,4 +270,21 @@
 be for formatting as a footnote).
 
+=item C<=encoding I<encodingname>>
+
+This command is used for declaring the encoding of a document.  Most
+users won't need this; but if your encoding isn't US-ASCII or Latin-1,
+then put a C<=encoding I<encodingname>> command early in the document so
+that pod formatters will know how to decode the document.  For
+I<encodingname>, use a name recognized by the L<Encode::Supported>
+module.  Examples:
+
+  =encoding utf8
+
+  =encoding koi8-r
+  
+  =encoding ShiftJIS
+  
+  =encoding big5
+
 =back
 
@@ -553,5 +570,5 @@
 
     C<open(X, "E<gt>E<gt>thing.dat") || die $!>
-    C<$foo-E<gt>bar(); >>
+    C<$foo-E<gt>bar();>
 
 This is currently supported by pod2text (Pod::Text), pod2man (Pod::Man),
Index: branches/vendor/third/perl/pod/Makefile.SH
===================================================================
--- branches/vendor/third/perl/pod/Makefile.SH (revision 18449)
+++ branches/vendor/third/perl/pod/Makefile.SH (revision 20074)
@@ -74,7 +74,4 @@
 regen_pods: perlmodlib.pod toc
 
-buildtoc:	buildtoc.PL perl.pod ../MANIFEST
-	$(PERLILIB) buildtoc.PL
-
 perltoc.pod:	buildtoc
 
@@ -86,5 +83,5 @@
 
 toc perltoc.pod:	buildtoc
-	$(PERLILIB) buildtoc
+	$(PERLILIB) buildtoc --build-toc
 
 .SUFFIXES: .pm .pod
Index: branches/vendor/third/perl/pod/perlport.pod
===================================================================
--- branches/vendor/third/perl/pod/perlport.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlport.pod (revision 20074)
@@ -189,10 +189,10 @@
 
 These are just the most common definitions of C<\n> and C<\r> in Perl.
-There may well be others.  For example, on an EBCDIC implementation such
-as z/OS or OS/400 the above material is similar to "Unix" but the code
-numbers change:
-
-    LF  eq  \025  eq  \x15  eq           chr(21)  eq  CP-1047 21
-    LF  eq  \045  eq  \x25  eq  \cU  eq  chr(37)  eq  CP-0037 37
+There may well be others.  For example, on an EBCDIC implementation
+such as z/OS (OS/390) or OS/400 (using the ILE, the PASE is ASCII-based)
+the above material is similar to "Unix" but the code numbers change:
+
+    LF  eq  \025  eq  \x15  eq  \cU  eq  chr(21)  eq  CP-1047 21
+    LF  eq  \045  eq  \x25  eq           chr(37)  eq  CP-0037 37
     CR  eq  \015  eq  \x0D  eq  \cM  eq  chr(13)  eq  CP-1047 13
     CR  eq  \015  eq  \x0D  eq  \cM  eq  chr(13)  eq  CP-0037 13
@@ -405,8 +405,10 @@
 to deal with, so don't stay up late worrying about it.
 
-Some platforms can't delete or rename files held open by the system.
-Remember to C<close> files when you are done with them.  Don't
-C<unlink> or C<rename> an open file.  Don't C<tie> or C<open> a
-file already tied or opened; C<untie> or C<close> it first.
+Some platforms can't delete or rename files held open by the system,
+this limitation may also apply to changing filesystem metainformation
+like file permissions or owners.  Remember to C<close> files when you
+are done with them.  Don't C<unlink> or C<rename> an open file.  Don't
+C<tie> or C<open> a file already tied or opened; C<untie> or C<close>
+it first.
 
 Don't open the same file more than once at a time for writing, as some
@@ -447,5 +449,10 @@
 directories.
 
-Don't count on specific values of C<$!>.
+Don't count on specific values of C<$!>, neither numeric nor
+especially the strings values-- users may switch their locales causing
+error messages to be translated into their languages.  If you can
+trust a POSIXish environment, you can portably use the symbols defined
+by the Errno module, like ENOENT.  And don't trust on the values of C<$!>
+at all except immediately after a failed system call.
 
 =head2 Command names versus file pathnames
@@ -481,4 +488,40 @@
      {$thisperl .= $Config{_exe} unless $thisperl =~ m/$Config{_exe}$/i;}
 
+=head2 Networking
+
+Don't assume that you can reach the public Internet.
+
+Don't assume that there is only one way to get through firewalls
+to the public Internet.
+
+Don't assume that you can reach outside world through any other port
+than 80, or some web proxy.  ftp is blocked by many firewalls.
+
+Don't assume that you can send email by connecting to the local SMTP port.
+
+Don't assume that you can reach yourself or any node by the name
+'localhost'.  The same goes for '127.0.0.1'.  You will have to try both.
+
+Don't assume that the host has only one network card, or that it
+can't bind to many virtual IP addresses.
+
+Don't assume a particular network device name.
+
+Don't assume a particular set of ioctl()s will work.
+
+Don't assume that you can ping hosts and get replies.
+
+Don't assume that any particular port (service) will respond.
+
+Don't assume that Sys::Hostname() (or any other API or command)
+returns either a fully qualified hostname or a non-qualified hostname:
+it all depends on how the system had been configured.  Also remember
+things like DHCP and NAT-- the hostname you get back might not be very
+useful.
+
+All the above "don't":s may look daunting, and they are -- but the key
+is to degrade gracefully if one cannot reach the particular network
+service one wants.  Croaking or hanging do not look very professional.
+
 =head2 Interprocess Communication (IPC)
 
@@ -565,14 +608,22 @@
 widely different ways.  Don't assume the timezone is stored in C<$ENV{TZ}>,
 and even if it is, don't assume that you can control the timezone through
-that variable.
+that variable.  Don't assume anything about the three-letter timezone
+abbreviations (for example that MST would be the Mountain Standard Time,
+it's been known to stand for Moscow Standard Time).  If you need to
+use timezones, express them in some unambiguous format like the
+exact number of minutes offset from UTC, or the POSIX timezone
+format.
 
 Don't assume that the epoch starts at 00:00:00, January 1, 1970,
-because that is OS- and implementation-specific.  It is better to store a date
-in an unambiguous representation.  The ISO-8601 standard defines
-"YYYY-MM-DD" as the date format.  A text representation (like "1987-12-18")
-can be easily converted into an OS-specific value using a module like
-Date::Parse.  An array of values, such as those returned by
-C<localtime>, can be converted to an OS-specific representation using
-Time::Local.
+because that is OS- and implementation-specific.  It is better to
+store a date in an unambiguous representation.  The ISO 8601 standard
+defines YYYY-MM-DD as the date format, or YYYY-MM-DDTHH-MM-SS
+(that's a literal "T" separating the date from the time).
+Please do use the ISO 8601 instead of making us to guess what
+date 02/03/04 might be.  ISO 8601 even sorts nicely as-is.
+A text representation (like "1987-12-18") can be easily converted
+into an OS-specific value using a module like Date::Parse.
+An array of values, such as those returned by C<localtime>, can be
+converted to an OS-specific representation using Time::Local.
 
 When calculating specific times, such as for tests in time or date modules,
@@ -585,4 +636,7 @@
 some large number.  C<$offset> can then be added to a Unix time value
 to get what should be the proper value on any system.
+
+On Windows (at least), you shouldn't pass a negative value to C<gmtime> or
+C<localtime>.
 
 =head2 Character sets and character encoding
@@ -611,4 +665,23 @@
 users.  The system affects character sets and encoding, and date
 and time formatting--amongst other things.
+
+If you really want to be international, you should consider Unicode.
+See L<perluniintro> and L<perlunicode> for more information.
+
+If you want to use non-ASCII bytes (outside the bytes 0x00..0x7f) in
+the "source code" of your code, to be portable you have to be explicit
+about what bytes they are.  Someone might for example be using your
+code under a UTF-8 locale, in which case random native bytes might be
+illegal ("Malformed UTF-8 ...")  This means that for example embedding
+ISO 8859-1 bytes beyond 0x7f into your strings might cause trouble
+later.  If the bytes are native 8-bit bytes, you can use the C<bytes>
+pragma.  If the bytes are in a string (regular expression being a
+curious string), you can often also use the C<\xHH> notation instead
+of embedding the bytes as-is.  If they are in some particular legacy
+encoding (ether single-byte or something more complicated), you can
+use the C<encoding> pragma.  (If you want to write your code in UTF-8,
+you can use either the C<utf8> pragma, or the C<encoding> pragma.)
+The C<bytes> and C<utf8> pragmata are available since Perl 5.6.0, and
+the C<encoding> pragma since Perl 5.8.0.
 
 =head2 System Resources
@@ -673,10 +746,12 @@
 often happens when tests spawn off other processes or call external
 programs to aid in the testing, or when (as noted above) the tests
-assume certain things about the filesystem and paths.  Be careful
-not to depend on a specific output style for errors, such as when
-checking C<$!> after a system call.  Some platforms expect a certain
-output format, and perl on those platforms may have been adjusted
-accordingly.  Most specifically, don't anchor a regex when testing
-an error value.
+assume certain things about the filesystem and paths.  Be careful not
+to depend on a specific output style for errors, such as when checking
+C<$!> after a failed system call.  Using C<$!> for anything else than
+displaying it as output is doubtful (though see the Errno module for
+testing reasonably portably for error value). Some platforms expect
+a certain output format, and Perl on those platforms may have been
+adjusted accordingly.  Most specifically, don't anchor a regex when
+testing an error value.
 
 =head1 CPAN Testers
@@ -1157,5 +1232,7 @@
 services for OS/390" (formerly known as OpenEdition), VM/ESA OpenEdition, or
 the BS200 POSIX-BC system (BS2000 is supported in perl 5.6 and greater).
-See L<perlos390> for details.  
+See L<perlos390> for details.  Note that for OS/400 there is also a port of
+Perl 5.8.1/5.9.0 or later to the PASE which is ASCII-based (as opposed to
+ILE which is EBCDIC-based), see L<perlos400>. 
 
 As of R2.5 of USS for OS/390 and Version 2.3 of VM/ESA these Unix
@@ -1469,10 +1546,4 @@
 (S<RISC OS>)
 
-=item alarm SECONDS
-
-=item alarm
-
-Not implemented. (Win32)
-
 =item binmode FILEHANDLE
 
@@ -1634,4 +1705,9 @@
 
 Not implemented. (S<Mac OS>, Win32, VMS, VM/ESA)
+
+=item gethostbyname
+
+C<gethostbyname('localhost')> does not work everywhere: you may have
+to use C<gethostbyname('127.0.0.1')>. (S<Mac OS>, S<Irix 5>)
 
 =item gethostent
@@ -2070,10 +2146,11 @@
 =head1 Supported Platforms
 
-As of June 2002 (the Perl release 5.8.0), the following platforms are
-able to build Perl from the standard source code distribution
+As of September 2003 (the Perl release 5.8.1), the following platforms
+are able to build Perl from the standard source code distribution
 available at http://www.cpan.org/src/index.html
 
         AIX
         BeOS
+        BSD/OS          (BSDi)
         Cygwin
         DG/UX
@@ -2082,24 +2159,29 @@
         EPOC R5
         FreeBSD
+        HI-UXMPP        (Hitachi) (5.8.0 worked but we didn't know it)
         HP-UX
         IRIX
         Linux
+        LynxOS
         Mac OS Classic
-        Mac OS X         (Darwin)
+        Mac OS X        (Darwin)
         MPE/iX
         NetBSD
         NetWare
         NonStop-UX
-        ReliantUNIX     (SINIX)
+        ReliantUNIX     (formerly SINIX)
         OpenBSD
-        OpenVMS         (VMS)
+        OpenVMS         (formerly VMS)
+        Open UNIX       (Unixware) (since Perl 5.8.1/5.9.0)
         OS/2
+        OS/400          (using the PASE) (since Perl 5.8.1/5.9.0)
         PowerUX
-        POSIX-BC        (BS2000)
+        POSIX-BC        (formerly BS2000)
         QNX
         Solaris
         SunOS 4
-        SUPER-UX
-        Tru64 UNIX      (DEC OSF/1, Digital UNIX)
+        SUPER-UX        (NEC)
+        SVR4
+        Tru64 UNIX      (formerly DEC OSF/1, Digital UNIX)
         UNICOS
         UNICOS/mk
@@ -2108,5 +2190,5 @@
         Win95/98/ME/2K/XP 2)
         WinCE
-        z/OS            (OS/390)
+        z/OS            (formerly OS/390)
         VM/ESA
 
@@ -2116,19 +2198,16 @@
 The following platforms worked with the previous releases (5.6 and
 5.7), but we did not manage either to fix or to test these in time
-for the 5.8.0 release.  There is a very good chance that many of these
-will work fine with the 5.8.0.
-
-        BSD/OS
+for the 5.8.1 release.  There is a very good chance that many of these
+will work fine with the 5.8.1.
+
         DomainOS
         Hurd
-        LynxOS
         MachTen
         PowerMAX
         SCO SV
-        SVR4
         Unixware
         Windows 3.1
 
-Known to be broken for 5.8.0 (but 5.6.1 and 5.7.2 can be used):
+Known to be broken for 5.8.0 and 5.8.1 (but 5.6.1 and 5.7.2 can be used):
 
 	AmigaOS
@@ -2178,5 +2257,5 @@
                                 Perl release
 
-        OS/400                  5.005_02
+        OS/400 (ILE)            5.005_02
         Tandem Guardian         5.004
 
@@ -2200,8 +2279,9 @@
 L<perlce>, L<perlcygwin>, L<perldgux>, L<perldos>, L<perlepoc>,
 L<perlebcdic>, L<perlfreebsd>, L<perlhurd>, L<perlhpux>, L<perlirix>,
-L<perlmachten>, L<perlmacos>, L<perlmint>, L<perlmpeix>,
-L<perlnetware>, L<perlos2>, L<perlos390>, L<perlplan9>, L<perlqnx>,
-L<perlsolaris>, L<perltru64>, L<perlunicode>, L<perlvmesa>,
-L<perlvms>, L<perlvos>, L<perlwin32>, and L<Win32>.
+L<perlmachten>, L<perlmacos>, L<perlmacosx>, L<perlmint>, L<perlmpeix>,
+L<perlnetware>, L<perlos2>, L<perlos390>, L<perlos400>,
+L<perlplan9>, L<perlqnx>, L<perlsolaris>, L<perltru64>,
+L<perlunicode>, L<perlvmesa>, L<perlvms>, L<perlvos>,
+L<perlwin32>, and L<Win32>.
 
 =head1 AUTHORS / CONTRIBUTORS
Index: branches/vendor/third/perl/pod/perlcheat.pod
===================================================================
--- branches/vendor/third/perl/pod/perlcheat.pod (revision 20074)
+++ branches/vendor/third/perl/pod/perlcheat.pod (revision 20074)
@@ -0,0 +1,93 @@
+=head1 NAME
+
+perlcheat - Perl 5 Cheat Sheet
+
+=head1 DESCRIPTION
+
+This 'cheat sheet' is a handy reference, meant for beginning Perl
+programmers. Not everything is mentioned, but 194 features may
+already be overwhelming.
+
+=head2 The sheet
+
+  CONTEXTS  SIGILS             ARRAYS        HASHES
+  void      $scalar   whole:   @array        %hash
+  scalar    @array    slice:   @array[0, 2]  @hash{'a', 'b'}
+  list      %hash     element: $array[0]     $hash{'a'}
+            &sub
+            *glob    SCALAR VALUES
+                     number, string, reference, glob, undef
+  REFERENCES
+  \     references      $$foo[1]       aka $foo->[1]
+  $@%&* dereference     $$foo{bar}     aka $foo->{bar}
+  []    anon. arrayref  ${$$foo[1]}[2] aka $foo->[1]->[2]
+  {}    anon. hashref   ${$$foo[1]}[2] aka $foo->[1][2]
+  \()   list of refs
+                          NUMBERS vs STRINGS  LINKS
+  OPERATOR PRECEDENCE     =          =        perl.plover.com
+  ->                      +          .        search.cpan.org
+  ++ --                   == !=      eq ne         cpan.org
+  **                      < > <= >=  lt gt le ge   pm.org
+  ! ~ \ u+ u-             <=>        cmp           tpj.com
+  =~ !~                                            perldoc.com
+  * / % x                 SYNTAX
+  + - .                   for    (LIST) { }, for (a;b;c) { }
+  << >>                   while  ( ) { }, until ( ) { }
+  named uops              if     ( ) { } elsif ( ) { } else { }
+  < > <= >= lt gt le ge   unless ( ) { } elsif ( ) { } else { }
+  == != <=> eq ne cmp     for equals foreach (ALWAYS)
+  &
+  | ^              REGEX METACHARS            REGEX MODIFIERS
+  &&               ^     string begin         /i case insens.
+  ||               $     str. end (before \n) /m line based ^$
+  .. ...           +     one or more          /s . includes \n
+  ?:               *     zero or more         /x ign. wh.space
+  = += -= *= etc.  ?     zero or one          /g global
+  , =>             {3,7} repeat in range
+  list ops         ()    capture          REGEX CHARCLASSES
+  not              (?:)  no capture       .  == [^\n]
+  and              []    character class  \s == [\x20\f\t\r\n]
+  or xor           |     alternation      \w == [A-Za-z0-9_]
+                   \b    word boundary    \d == [0-9]
+                   \z    string end       \S, \W and \D negate
+  DO
+  use strict;        DON'T            LINKS
+  use warnings;      "$foo"           perl.com
+  my $var;           $$variable_name  perlmonks.org
+  open() or die $!;  `$userinput`     use.perl.org
+  use Modules;       /$userinput/     perl.apache.org
+                                      parrotcode.org
+  FUNCTION RETURN LISTS
+  stat      localtime    caller         SPECIAL VARIABLES
+   0 dev    0 second     0 package      $_    default variable
+   1 ino    1 minute     1 filename     $0    program name
+   2 mode   2 hour       2 line         $/    input separator
+   3 nlink  3 day        3 subroutine   $\    output separator
+   4 uid    4 month-1    4 hasargs      $|    autoflush
+   5 gid    5 year-1900  5 wantarray    $!    sys/libcall error
+   6 rdev   6 weekday    6 evaltext     $@    eval error
+   7 size   7 yearday    7 is_require   $$    process ID
+   8 atime  8 is_dst     8 hints        $.    line number
+   9 mtime               9 bitmask      @ARGV command line args
+  10 ctime  just use                    @INC  include paths
+  11 blksz  POSIX::      3..9 only      @_    subroutine args
+  12 blcks  strftime!    with EXPR      %ENV  environment
+
+=head1 ACKNOWLEDGEMENTS
+
+The first version of this document appeared on Perl Monks, where several
+people had useful suggestions. Thank you, Perl Monks.
+
+A special thanks to Damian Conway, who didn't only suggest important changes,
+but also took the time to count the number of listed features and make a
+Perl 6 version to show that Perl will stay Perl.
+
+=head1 AUTHOR
+
+Juerd Waalboer <juerd@cpan.org>, with the help of many Perl Monks.
+
+=head1 SEE ALSO
+
+ http://perlmonks.org/?node_id=216602      the original PM post
+ http://perlmonks.org/?node_id=238031      Damian Conway's Perl 6 version
+ http://juerd.nl/site.plp/perlcheat        home of the Perl Cheat Sheet
Index: branches/vendor/third/perl/pod/perlbot.pod
===================================================================
--- branches/vendor/third/perl/pod/perlbot.pod (revision 10723)
+++ branches/vendor/third/perl/pod/perlbot.pod (revision 20074)
@@ -11,5 +11,6 @@
 methodology.  This is not intended as a tutorial for object-oriented
 programming or as a comprehensive guide to Perl's object oriented features,
-nor should it be construed as a style guide.
+nor should it be construed as a style guide.  If you're looking for tutorials,
+be sure to read L<perlboot>, L<perltoot>, and L<perltooc>.
 
 The Perl motto still holds:  There's more than one way to do it.
@@ -242,4 +243,7 @@
 	$foo->goo;
 	$foo->google;
+
+Note that C<SUPER> refers to the superclasses of the current package
+(C<Foo>), not to the superclasses of C<$self>.
 
 
@@ -526,2 +530,6 @@
 	$foo{'bar'} = 123;
 	print "foo-bar = $foo{'bar'}\n";
+
+=head1 SEE ALSO
+
+L<perlboot>, L<perltoot>, L<perltooc>.
Index: branches/vendor/third/perl/pod/perltoc.pod
===================================================================
--- branches/vendor/third/perl/pod/perltoc.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perltoc.pod (revision 20074)
@@ -1,2 +1,6 @@
+
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+# This file is autogenerated by buildtoc from all the other pods.
+# Edit those files and run buildtoc --build-toc to effect changes.
 
 =head1 NAME
@@ -104,36 +108,668 @@
 =back
 
-=head2 perlfaq - frequently asked questions about Perl ($Date: 2002/03/11
-21:32:23 $)
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item perlfaq: Structural overview of the FAQ.
-
-=item L<perlfaq1>: General Questions About Perl
-
-=item L<perlfaq2>: Obtaining and Learning about Perl
-
-=item L<perlfaq3>: Programming Tools
-
-=item L<perlfaq4>: Data Manipulation
-
-=item L<perlfaq5>: Files and Formats
-
-=item L<perlfaq6>: Regular Expressions
-
-=item L<perlfaq7>: General Perl Language Issues
-
-=item L<perlfaq8>: System Interaction
-
-=item L<perlfaq9>: Networking
-
-=back
-
-=item About the perlfaq documents
+=head2 perlreftut - Mark's very short tutorial about references
+
+=over 4
+
+=item DESCRIPTION
+
+=item Who Needs Complicated Data Structures?
+
+=item The Solution
+
+=item Syntax
+
+=over 4
+
+=item Making References
+
+=item Using References
+
+=item An Example
+
+=item Arrow Rule
+
+=back
+
+=item Solution
+
+=item The Rest
+
+=item Summary
+
+=item Credits
+
+=over 4
+
+=item Distribution Conditions
+
+=back
+
+=back
+
+=head2 perldsc - Perl Data Structures Cookbook
+
+=over 4
+
+=item DESCRIPTION
+
+arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes,
+more elaborate constructs
+
+=item REFERENCES
+
+=item COMMON MISTAKES
+
+=item CAVEAT ON PRECEDENCE
+
+=item WHY YOU SHOULD ALWAYS C<use strict>
+
+=item DEBUGGING
+
+=item CODE EXAMPLES
+
+=item ARRAYS OF ARRAYS
+
+=over 4
+
+=item Declaration of an ARRAY OF ARRAYS
+
+=item Generation of an ARRAY OF ARRAYS
+
+=item Access and Printing of an ARRAY OF ARRAYS
+
+=back
+
+=item HASHES OF ARRAYS
+
+=over 4
+
+=item Declaration of a HASH OF ARRAYS
+
+=item Generation of a HASH OF ARRAYS
+
+=item Access and Printing of a HASH OF ARRAYS
+
+=back
+
+=item ARRAYS OF HASHES
+
+=over 4
+
+=item Declaration of an ARRAY OF HASHES
+
+=item Generation of an ARRAY OF HASHES
+
+=item Access and Printing of an ARRAY OF HASHES
+
+=back
+
+=item HASHES OF HASHES
+
+=over 4
+
+=item Declaration of a HASH OF HASHES
+
+=item Generation of a HASH OF HASHES
+
+=item Access and Printing of a HASH OF HASHES
+
+=back
+
+=item MORE ELABORATE RECORDS
+
+=over 4
+
+=item Declaration of MORE ELABORATE RECORDS
+
+=item Declaration of a HASH OF COMPLEX RECORDS
+
+=item Generation of a HASH OF COMPLEX RECORDS
+
+=back
+
+=item Database Ties
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
+=head2 perllol - Manipulating Arrays of Arrays in Perl
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item Declaration and Access of Arrays of Arrays
+
+=item Growing Your Own
+
+=item Access and Printing
+
+=item Slices
+
+=back
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
+=head2 perlrequick - Perl regular expressions quick start
+
+=over 4
+
+=item DESCRIPTION
+
+=item The Guide
+
+=over 4
+
+=item Simple word matching
+
+=item Using character classes
+
+=item Matching this or that
+
+=item Grouping things and hierarchical matching
+
+=item Extracting matches
+
+=item Matching repetitions
+
+=item More matching
+
+=item Search and replace
+
+=item The split operator
+
+=back
+
+=item BUGS
+
+=item SEE ALSO
+
+=item AUTHOR AND COPYRIGHT
+
+=over 4
+
+=item Acknowledgments
+
+=back
+
+=back
+
+=head2 perlretut - Perl regular expressions tutorial
+
+=over 4
+
+=item DESCRIPTION
+
+=item Part 1: The basics
+
+=over 4
+
+=item Simple word matching
+
+=item Using character classes
+
+=item Matching this or that
+
+=item Grouping things and hierarchical matching
+
+=item Extracting matches
+
+=item Matching repetitions
+
+=item Building a regexp
+
+=item Using regular expressions in Perl
+
+=back
+
+=item Part 2: Power tools
+
+=over 4
+
+=item More on characters, strings, and character classes
+
+=item Compiling and saving regular expressions
+
+=item Embedding comments and modifiers in a regular expression
+
+=item Non-capturing groupings
+
+=item Looking ahead and looking behind
+
+=item Using independent subexpressions to prevent backtracking
+
+=item Conditional expressions
+
+=item A bit of magic: executing Perl code in a regular expression
+
+=item Pragmas and debugging
+
+=back
+
+=item BUGS
+
+=item SEE ALSO
+
+=item AUTHOR AND COPYRIGHT
+
+=over 4
+
+=item Acknowledgments
+
+=back
+
+=back
+
+=head2 perlboot - Beginner's Object-Oriented Tutorial
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item If we could talk to the animals...
+
+=item Introducing the method invocation arrow
+
+=item Invoking a barnyard
+
+=item The extra parameter of method invocation
+
+=item Calling a second method to simplify things
+
+=item Inheriting the windpipes
+
+=item A few notes about @ISA
+
+=item Overriding the methods
+
+=item Starting the search from a different place
+
+=item The SUPER way of doing things
+
+=item Where we're at so far...
+
+=item A horse is a horse, of course of course -- or is it?
+
+=item Invoking an instance method
+
+=item Accessing the instance data
+
+=item How to build a horse
+
+=item Inheriting the constructor
+
+=item Making a method work with either classes or instances
+
+=item Adding parameters to a method
+
+=item More interesting instances
+
+=item A horse of a different color
+
+=item Summary
+
+=back
+
+=item SEE ALSO
+
+=item COPYRIGHT
+
+=back
+
+=head2 perltoot - Tom's object-oriented tutorial for perl
+
+=over 4
+
+=item DESCRIPTION
+
+=item Creating a Class
+
+=over 4
+
+=item Object Representation
+
+=item Class Interface
+
+=item Constructors and Instance Methods
+
+=item Planning for the Future: Better Constructors
+
+=item Destructors
+
+=item Other Object Methods
+
+=back
+
+=item Class Data
+
+=over 4
+
+=item Accessing Class Data
+
+=item Debugging Methods
+
+=item Class Destructors
+
+=item Documenting the Interface
+
+=back
+
+=item Aggregation
+
+=item Inheritance
+
+=over 4
+
+=item Overridden Methods
+
+=item Multiple Inheritance
+
+=item UNIVERSAL: The Root of All Objects
+
+=back
+
+=item Alternate Object Representations
+
+=over 4
+
+=item Arrays as Objects
+
+=item Closures as Objects
+
+=back
+
+=item AUTOLOAD: Proxy Methods
+
+=over 4
+
+=item Autoloaded Data Methods
+
+=item Inherited Autoloaded Data Methods
+
+=back
+
+=item Metaclassical Tools
+
+=over 4
+
+=item Class::Struct
+
+=item Data Members as Variables
+
+=back
+
+=item NOTES
+
+=over 4
+
+=item Object Terminology
+
+=back
+
+=item SEE ALSO
+
+=item AUTHOR AND COPYRIGHT
+
+=item COPYRIGHT
+
+=over 4
+
+=item Acknowledgments
+
+=back
+
+=back
+
+=head2 perltooc - Tom's OO Tutorial for Class Data in Perl
+
+=over 4
+
+=item DESCRIPTION
+
+=item Class Data in a Can
+
+=item Class Data as Package Variables
+
+=over 4
+
+=item Putting All Your Eggs in One Basket
+
+=item Inheritance Concerns
+
+=item The Eponymous Meta-Object
+
+=item Indirect References to Class Data
+
+=item Monadic Classes
+
+=item Translucent Attributes
+
+=back
+
+=item Class Data as Lexical Variables
+
+=over 4
+
+=item Privacy and Responsibility 
+
+=item File-Scoped Lexicals
+
+=item More Inheritance Concerns
+
+=item Locking the Door and Throwing Away the Key
+
+=item Translucency Revisited
+
+=back
+
+=item NOTES
+
+=item SEE ALSO
+
+=item AUTHOR AND COPYRIGHT
+
+=item ACKNOWLEDGEMENTS
+
+=item HISTORY
+
+=back
+
+=head2 perlbot - Bag'o Object Tricks (the BOT)
+
+=over 4
+
+=item DESCRIPTION
+
+=item OO SCALING TIPS
+
+=item INSTANCE VARIABLES
+
+=item SCALAR INSTANCE VARIABLES
+
+=item INSTANCE VARIABLE INHERITANCE
+
+=item OBJECT RELATIONSHIPS
+
+=item OVERRIDING SUPERCLASS METHODS
+
+=item USING RELATIONSHIP WITH SDBM
+
+=item THINKING OF CODE REUSE
+
+=item CLASS CONTEXT AND THE OBJECT
+
+=item INHERITING A CONSTRUCTOR
+
+=item DELEGATION
+
+=item SEE ALSO
+
+=back
+
+=head2 perlstyle - Perl style guide
+
+=over 4
+
+=item DESCRIPTION
+
+=back
+
+=head2 perlcheat - Perl 5 Cheat Sheet
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item The sheet
+
+=back
+
+=item ACKNOWLEDGEMENTS
+
+=item AUTHOR
+
+=item SEE ALSO
+
+=back
+
+=head2 perltrap - Perl traps for the unwary
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item Awk Traps
+
+=item C/C++ Traps
+
+=item Sed Traps
+
+=item Shell Traps
+
+=item Perl Traps
+
+=item Perl4 to Perl5 Traps
+
+Discontinuance, Deprecation, and BugFix traps, Parsing Traps, Numerical
+Traps, General data type traps, Context Traps - scalar, list contexts,
+Precedence Traps, General Regular Expression Traps using s///, etc,
+Subroutine, Signal, Sorting Traps, OS Traps, DBM Traps, Unclassified Traps
+
+=item Discontinuance, Deprecation, and BugFix traps
+
+Discontinuance, Deprecation, BugFix, Discontinuance, Discontinuance,
+Discontinuance, BugFix, Discontinuance, Discontinuance, BugFix,
+Discontinuance, Deprecation, Discontinuance, Discontinuance
+
+=item Parsing Traps
+
+Parsing, Parsing, Parsing, Parsing, Parsing
+
+=item Numerical Traps
+
+Numerical, Numerical, Numerical, Bitwise string ops
+
+=item General data type traps
+
+(Arrays), (Arrays), (Hashes), (Globs), (Globs), (Scalar String),
+(Constants), (Scalars), (Variable Suicide)
+
+=item Context Traps - scalar, list contexts
+
+(list context), (scalar context), (scalar context), (list, builtin)
+
+=item Precedence Traps
+
+Precedence, Precedence, Precedence, Precedence, Precedence, Precedence,
+Precedence
+
+=item General Regular Expression Traps using s///, etc.
+
+Regular Expression, Regular Expression, Regular Expression, Regular
+Expression, Regular Expression, Regular Expression, Regular Expression,
+Regular Expression, Regular Expression
+
+=item Subroutine, Signal, Sorting Traps
+
+(Signals), (Sort Subroutine), warn() won't let you specify a filehandle
+
+=item OS Traps
+
+(SysV), (SysV)
+
+=item Interpolation Traps
+
+Interpolation, Interpolation, Interpolation, Interpolation, Interpolation,
+Interpolation, Interpolation, Interpolation, Interpolation
+
+=item DBM Traps
+
+DBM, DBM
+
+=item Unclassified Traps
+
+C<require>/C<do> trap using returned value, C<split> on empty string with
+LIMIT specified
+
+=back
+
+=back
+
+=head2 perldebtut - Perl debugging tutorial
+
+=over 4
+
+=item DESCRIPTION
+
+=item use strict
+
+=item Looking at data and -w and v
+
+=item help
+
+=item Stepping through code
+
+=item Placeholder for a, w, t, T
+
+=item REGULAR EXPRESSIONS
+
+=item OUTPUT TIPS
+
+=item CGI
+
+=item GUIs
+
+=item SUMMARY
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=item CONTRIBUTORS
+
+=back
+
+=head2 perlfaq - frequently asked questions about Perl ($Date: 2003/01/31
+17:37:17 $)
+
+=over 4
+
+=item DESCRIPTION
 
 =over 4
@@ -160,17 +796,889 @@
 =back
 
-=item Changes
-
-1/November/2000, 23/May/99, 13/April/99, 7/January/99, 22/June/98,
-24/April/97, 23/April/97, 25/March/97, 18/March/97, 17/March/97 Version,
-Initial Release: 11/March/97
-
-=back
-
-=head2 perlbook - Perl book information
-
-=over 4
-
-=item DESCRIPTION
+=item Table of Contents
+
+perlfaq  - this document, perlfaq1 - General Questions About Perl, perlfaq2
+- Obtaining and Learning about Perl, perlfaq3 - Programming Tools, perlfaq4
+- Data Manipulation, perlfaq5 - Files and Formats, perlfaq6 - Regular
+Expressions, perlfaq7 - General Perl Language Issues, perlfaq8 - System
+Interaction, perlfaq9 - Networking
+
+=item The Questions
+
+=over 4
+
+=item L<perlfaq1>: General Questions About Perl
+
+=item L<perlfaq2>: Obtaining and Learning about Perl
+
+=item L<perlfaq3>: Programming Tools
+
+=item L<perlfaq4>: Data Manipulation
+
+=item L<perlfaq5>: Files and Formats
+
+=item L<perlfaq6>: Regular Expressions
+
+=item L<perlfaq7>: General Perl Language Issues
+
+=item L<perlfaq8>: System Interaction
+
+=item L<perlfaq9>: Networking
+
+=back
+
+=back
+
+=head2 perlfaq1 - General Questions About Perl ($Revision: 1.1.1.5 $, $Date:
+2003/11/23 08:02:29 $)
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item What is Perl?
+
+=item Who supports Perl?  Who develops it?  Why is it free?
+
+=item Which version of Perl should I use?
+
+=item What are perl4 and perl5?
+
+=item What is Ponie?
+
+=item What is perl6?
+
+=item How stable is Perl?
+
+=item Is Perl difficult to learn?
+
+=item How does Perl compare with other languages like Java, Python, REXX,
+Scheme, or Tcl?
+
+=item Can I do [task] in Perl?
+
+=item When shouldn't I program in Perl?
+
+=item What's the difference between "perl" and "Perl"?
+
+=item Is it a Perl program or a Perl script?
+
+=item What is a JAPH?
+
+=item Where can I get a list of Larry Wall witticisms?
+
+=item How can I convince my sysadmin/supervisor/employees to use version
+5/5.6.1/Perl instead of some other language?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.1.1.5 $,
+$Date: 2004-02-09 19:10:47 $)
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item What machines support Perl?  Where do I get it?
+
+=item How can I get a binary version of Perl?
+
+=item I don't have a C compiler on my system.  How can I compile perl?
+
+=item I copied the Perl binary from one machine to another, but scripts
+don't work.
+
+=item I grabbed the sources and tried to compile but gdbm/dynamic
+loading/malloc/linking/... failed.  How do I make it work?
+
+=item What modules and extensions are available for Perl?  What is CPAN? 
+What does CPAN/src/... mean?
+
+=item Is there an ISO or ANSI certified version of Perl?
+
+=item Where can I get information on Perl?
+
+=item What are the Perl newsgroups on Usenet?  Where do I post questions?
+
+=item Where should I post source code?
+
+=item Perl Books
+
+References, Tutorials, Task-Oriented, Special Topics
+
+=item Perl in Magazines
+
+=item Perl on the Net: FTP and WWW Access
+
+=item What mailing lists are there for Perl?
+
+=item Archives of comp.lang.perl.misc
+
+=item Where can I buy a commercial version of Perl?
+
+=item Where do I send bug reports?
+
+=item What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq3 - Programming Tools ($Revision: 1.1.1.5 $, $Date: 2003/11/24
+19:55:50 $)
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item How do I do (anything)?
+
+=item How can I use Perl interactively?
+
+=item Is there a Perl shell?
+
+=item How do I find which modules are installed on my system?
+
+=item How do I debug my Perl programs?
+
+=item How do I profile my Perl programs?
+
+=item How do I cross-reference my Perl programs?
+
+=item Is there a pretty-printer (formatter) for Perl?
+
+=item Is there a ctags for Perl?
+
+=item Is there an IDE or Windows Perl Editor?
+
+Komodo, The Object System, Open Perl IDE, PerlBuilder, visiPerl+, OptiPerl,
+GNU Emacs, MicroEMACS, XEmacs, Jed, Elvis, Vile, Vim, Codewright,
+MultiEdit, SlickEdit, Bash, Ksh, Tcsh, Zsh, BBEdit and BBEdit Lite, Alpha
+
+=item Where can I get Perl macros for vi?
+
+=item Where can I get perl-mode for emacs?
+
+=item How can I use curses with Perl?
+
+=item How can I use X or Tk with Perl?
+
+=item How can I generate simple menus without using CGI or Tk?
+
+=item How can I make my Perl program run faster?
+
+=item How can I make my Perl program take less memory?
+
+Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and
+stringification, Pass by reference, Tie large variables to disk
+
+=item Is it safe to return a reference to local or lexical data?
+
+=item How can I free an array or hash so my program shrinks?
+
+=item How can I make my CGI script more efficient?
+
+=item How can I hide the source for my Perl program?
+
+=item How can I compile my Perl program into byte code or C?
+
+=item How can I compile Perl into Java?
+
+=item How can I get C<#!perl> to work on [MS-DOS,NT,...]?
+
+=item Can I write useful Perl programs on the command line?
+
+=item Why don't Perl one-liners work on my DOS/Mac/VMS system?
+
+=item Where can I learn about CGI or Web programming in Perl?
+
+=item Where can I learn about object-oriented Perl programming?
+
+=item Where can I learn about linking C with Perl? [h2xs, xsubpp]
+
+=item I've read perlembed, perlguts, etc., but I can't embed perl in
+my C program; what am I doing wrong?
+
+=item When I tried to run my script, I got this message. What does it mean?
+
+=item What's MakeMaker?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq4 - Data Manipulation ($Revision: 1.1.1.5 $, $Date: 2003/11/30
+00:50:08 $)
+
+=over 4
+
+=item DESCRIPTION
+
+=item Data: Numbers
+
+=over 4
+
+=item Why am I getting long decimals (eg, 19.9499999999999) instead of the
+numbers I should be getting (eg, 19.95)?
+
+=item Why is int() broken?
+
+=item Why isn't my octal data interpreted correctly?
+
+=item Does Perl have a round() function?  What about ceil() and floor()? 
+Trig functions?
+
+=item How do I convert between numeric representations/bases/radixes?
+
+How do I convert hexadecimal into decimal, How do I convert from decimal to
+hexadecimal, How do I convert from octal to decimal, How do I convert from
+decimal to octal, How do I convert from binary to decimal, How do I convert
+from decimal to binary
+
+=item Why doesn't & work the way I want it to?
+
+=item How do I multiply matrices?
+
+=item How do I perform an operation on a series of integers?
+
+=item How can I output Roman numerals?
+
+=item Why aren't my random numbers random?
+
+=item How do I get a random number between X and Y?
+
+=back
+
+=item Data: Dates
+
+=over 4
+
+=item How do I find the day or week of the year?
+
+=item How do I find the current century or millennium?
+
+=item How can I compare two dates and find the difference?
+
+=item How can I take a string and turn it into epoch seconds?
+
+=item How can I find the Julian Day?
+
+=item How do I find yesterday's date?
+
+=item Does Perl have a Year 2000 problem?  Is Perl Y2K compliant?
+
+=back
+
+=item Data: Strings
+
+=over 4
+
+=item How do I validate input?
+
+=item How do I unescape a string?
+
+=item How do I remove consecutive pairs of characters?
+
+=item How do I expand function calls in a string?
+
+=item How do I find matching/nesting anything?
+
+=item How do I reverse a string?
+
+=item How do I expand tabs in a string?
+
+=item How do I reformat a paragraph?
+
+=item How can I access or change N characters of a string?
+
+=item How do I change the Nth occurrence of something?
+
+=item How can I count the number of occurrences of a substring within a
+string?
+
+=item How do I capitalize all the words on one line?
+
+=item How can I split a [character] delimited string except when inside
+[character]?
+
+=item How do I strip blank space from the beginning/end of a string?
+
+=item How do I pad a string with blanks or pad a number with zeroes?
+
+=item How do I extract selected columns from a string?
+
+=item How do I find the soundex value of a string?
+
+=item How can I expand variables in text strings?
+
+=item What's wrong with always quoting "$vars"?
+
+=item Why don't my E<lt>E<lt>HERE documents work?
+
+There must be no space after the E<lt>E<lt> part, There (probably) should
+be a semicolon at the end, You can't (easily) have any space in front of
+the tag
+
+=back
+
+=item Data: Arrays
+
+=over 4
+
+=item What is the difference between a list and an array?
+
+=item What is the difference between $array[1] and @array[1]?
+
+=item How can I remove duplicate elements from a list or array?
+
+a), b), c), d), e)
+
+=item How can I tell whether a certain element is contained in a list or
+array?
+
+=item How do I compute the difference of two arrays?  How do I compute the
+intersection of two arrays?
+
+=item How do I test whether two arrays or hashes are equal?
+
+=item How do I find the first array element for which a condition is true?
+
+=item How do I handle linked lists?
+
+=item How do I handle circular lists?
+
+=item How do I shuffle an array randomly?
+
+=item How do I process/modify each element of an array?
+
+=item How do I select a random element from an array?
+
+=item How do I permute N elements of a list?
+
+=item How do I sort an array by (anything)?
+
+=item How do I manipulate arrays of bits?
+
+=item Why does defined() return true on empty arrays and hashes?
+
+=back
+
+=item Data: Hashes (Associative Arrays)
+
+=over 4
+
+=item How do I process an entire hash?
+
+=item What happens if I add or remove keys from a hash while iterating over
+it?
+
+=item How do I look up a hash element by value?
+
+=item How can I know how many entries are in a hash?
+
+=item How do I sort a hash (optionally by value instead of key)?
+
+=item How can I always keep my hash sorted?
+
+=item What's the difference between "delete" and "undef" with hashes?
+
+=item Why don't my tied hashes make the defined/exists distinction?
+
+=item How do I reset an each() operation part-way through?
+
+=item How can I get the unique keys from two hashes?
+
+=item How can I store a multidimensional array in a DBM file?
+
+=item How can I make my hash remember the order I put elements into it?
+
+=item Why does passing a subroutine an undefined element in a hash create
+it?
+
+=item How can I make the Perl equivalent of a C structure/C++ class/hash or
+array of hashes or arrays?
+
+=item How can I use a reference as a hash key?
+
+=back
+
+=item Data: Misc
+
+=over 4
+
+=item How do I handle binary data correctly?
+
+=item How do I determine whether a scalar is a number/whole/integer/float?
+
+=item How do I keep persistent data across program calls?
+
+=item How do I print out or copy a recursive data structure?
+
+=item How do I define methods for every class/object?
+
+=item How do I verify a credit card checksum?
+
+=item How do I pack arrays of doubles or floats for XS code?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq5 - Files and Formats ($Revision: 1.1.1.5 $, $Date: 2003/11/23
+08:07:46 $)
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item How do I flush/unbuffer an output filehandle?  Why must I do this?
+
+=item How do I change one line in a file/delete a line in a file/insert a
+line in the middle of a file/append to the beginning of a file?
+
+=item How do I count the number of lines in a file?
+
+=item How can I use Perl's C<-i> option from within a program?
+
+=item How do I make a temporary file name?
+
+=item How can I manipulate fixed-record-length files?
+
+=item How can I make a filehandle local to a subroutine?  How do I pass
+filehandles between subroutines?  How do I make an array of filehandles?
+
+=item How can I use a filehandle indirectly?
+
+=item How can I set up a footer format to be used with write()?
+
+=item How can I write() into a string?
+
+=item How can I output my numbers with commas added?
+
+=item How can I translate tildes (~) in a filename?
+
+=item How come when I open a file read-write it wipes it out?
+
+=item Why do I sometimes get an "Argument list too long" when I use
+E<lt>*E<gt>?
+
+=item Is there a leak/bug in glob()?
+
+=item How can I open a file with a leading ">" or trailing blanks?
+
+=item How can I reliably rename a file?
+
+=item How can I lock a file?
+
+=item Why can't I just open(FH, "E<gt>file.lock")?
+
+=item I still don't get locking.  I just want to increment the number in
+the file.  How can I do this?
+
+=item All I want to do is append a small amount of text to the end of a
+file.  Do I still have to use locking?
+
+=item How do I randomly update a binary file?
+
+=item How do I get a file's timestamp in perl?
+
+=item How do I set a file's timestamp in perl?
+
+=item How do I print to more than one file at once?
+
+=item How can I read in an entire file all at once?
+
+=item How can I read in a file by paragraphs?
+
+=item How can I read a single character from a file?  From the keyboard?
+
+=item How can I tell whether there's a character waiting on a filehandle?
+
+=item How do I do a C<tail -f> in perl?
+
+=item How do I dup() a filehandle in Perl?
+
+=item How do I close a file descriptor by number?
+
+=item Why can't I use "C:\temp\foo" in DOS paths?  Why doesn't
+`C:\temp\foo.exe` work?
+
+=item Why doesn't glob("*.*") get all the files?
+
+=item Why does Perl let me delete read-only files?  Why does C<-i> clobber
+protected files?  Isn't this a bug in Perl?
+
+=item How do I select a random line from a file?
+
+=item Why do I get weird spaces when I print an array of lines?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq6 - Regular Expressions ($Revision: 1.1.1.5 $, $Date: 2003/01/03
+20:05:28 $)
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item How can I hope to use regular expressions without creating illegible
+and unmaintainable code?
+
+Comments Outside the Regex, Comments Inside the Regex, Different Delimiters
+
+=item I'm having trouble matching over more than one line.  What's wrong?
+
+=item How can I pull out lines between two patterns that are themselves on
+different lines?
+
+=item I put a regular expression into $/ but it didn't work. What's wrong?
+
+=item How do I substitute case insensitively on the LHS while preserving
+case on the RHS?
+
+=item How can I make C<\w> match national character sets?
+
+=item How can I match a locale-smart version of C</[a-zA-Z]/>?
+
+=item How can I quote a variable to use in a regex?
+
+=item What is C</o> really for?
+
+=item How do I use a regular expression to strip C style comments from a
+file?
+
+=item Can I use Perl regular expressions to match balanced text?
+
+=item What does it mean that regexes are greedy?  How can I get around it?
+
+=item How do I process each word on each line?
+
+=item How can I print out a word-frequency or line-frequency summary?
+
+=item How can I do approximate matching?
+
+=item How do I efficiently match many regular expressions at once?
+
+=item Why don't word-boundary searches with C<\b> work for me?
+
+=item Why does using $&, $`, or $' slow my program down?
+
+=item What good is C<\G> in a regular expression?
+
+=item Are Perl regexes DFAs or NFAs?  Are they POSIX compliant?
+
+=item What's wrong with using grep in a void context?
+
+=item How can I match strings with multibyte characters?
+
+=item How do I match a pattern that is supplied by the user?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq7 - General Perl Language Issues ($Revision: 1.1.1.5 $, $Date:
+2003/07/24 02:17:21 $)
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item Can I get a BNF/yacc/RE for the Perl language?
+
+=item What are all these $@%&* punctuation signs, and how do I know when to
+use them?
+
+=item Do I always/never have to quote my strings or use semicolons and
+commas?
+
+=item How do I skip some return values?
+
+=item How do I temporarily block warnings?
+
+=item What's an extension?
+
+=item Why do Perl operators have different precedence than C operators?
+
+=item How do I declare/create a structure?
+
+=item How do I create a module?
+
+=item How do I create a class?
+
+=item How can I tell if a variable is tainted?
+
+=item What's a closure?
+
+=item What is variable suicide and how can I prevent it?
+
+=item How can I pass/return a {Function, FileHandle, Array, Hash, Method,
+Regex}?
+
+Passing Variables and Functions, Passing Filehandles, Passing Regexes,
+Passing Methods
+
+=item How do I create a static variable?
+
+=item What's the difference between dynamic and lexical (static) scoping? 
+Between local() and my()?
+
+=item How can I access a dynamic variable while a similarly named lexical
+is in scope?
+
+=item What's the difference between deep and shallow binding?
+
+=item Why doesn't "my($foo) = E<lt>FILEE<gt>;" work right?
+
+=item How do I redefine a builtin function, operator, or method?
+
+=item What's the difference between calling a function as &foo and foo()?
+
+=item How do I create a switch or case statement?
+
+=item How can I catch accesses to undefined variables, functions, or
+methods?
+
+=item Why can't a method included in this same file be found?
+
+=item How can I find out my current package?
+
+=item How can I comment out a large block of perl code?
+
+=item How do I clear a package?
+
+=item How can I use a variable as a variable name?
+
+=item What does "bad interpreter" mean?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq8 - System Interaction ($Revision: 1.1.1.5 $, $Date: 2003/01/26
+17:44:04 $)
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item How do I find out which operating system I'm running under?
+
+=item How come exec() doesn't return?
+
+=item How do I do fancy stuff with the keyboard/screen/mouse?
+
+Keyboard, Screen, Mouse
+
+=item How do I print something out in color?
+
+=item How do I read just one key without waiting for a return key?
+
+=item How do I check whether input is ready on the keyboard?
+
+=item How do I clear the screen?
+
+=item How do I get the screen size?
+
+=item How do I ask the user for a password?
+
+=item How do I read and write the serial port?
+
+lockfiles, open mode, end of line, flushing output, non-blocking input
+
+=item How do I decode encrypted password files?
+
+=item How do I start a process in the background?
+
+STDIN, STDOUT, and STDERR are shared, Signals, Zombies
+
+=item How do I trap control characters/signals?
+
+=item How do I modify the shadow password file on a Unix system?
+
+=item How do I set the time and date?
+
+=item How can I sleep() or alarm() for under a second?
+
+=item How can I measure time under a second?
+
+=item How can I do an atexit() or setjmp()/longjmp()? (Exception handling)
+
+=item Why doesn't my sockets program work under System V (Solaris)?  What
+does the error message "Protocol not supported" mean?
+
+=item How can I call my system's unique C functions from Perl?
+
+=item Where do I get the include files to do ioctl() or syscall()?
+
+=item Why do setuid perl scripts complain about kernel problems?
+
+=item How can I open a pipe both to and from a command?
+
+=item Why can't I get the output of a command with system()?
+
+=item How can I capture STDERR from an external command?
+
+=item Why doesn't open() return an error when a pipe open fails?
+
+=item What's wrong with using backticks in a void context?
+
+=item How can I call backticks without shell processing?
+
+=item Why can't my script read from STDIN after I gave it EOF (^D on Unix,
+^Z on MS-DOS)?
+
+=item How can I convert my shell script to perl?
+
+=item Can I use perl to run a telnet or ftp session?
+
+=item How can I write expect in Perl?
+
+=item Is there a way to hide perl's command line from programs such as
+"ps"?
+
+=item I {changed directory, modified my environment} in a perl script.	How
+come the change disappeared when I exited the script?  How do I get my
+changes to be visible?
+
+Unix
+
+=item How do I close a process's filehandle without waiting for it to
+complete?
+
+=item How do I fork a daemon process?
+
+=item How do I find out if I'm running interactively or not?
+
+=item How do I timeout a slow event?
+
+=item How do I set CPU limits?
+
+=item How do I avoid zombies on a Unix system?
+
+=item How do I use an SQL database?
+
+=item How do I make a system() exit on control-C?
+
+=item How do I open a file without blocking?
+
+=item How do I install a module from CPAN?
+
+=item What's the difference between require and use?
+
+=item How do I keep my own module/library directory?
+
+=item How do I add the directory my program lives in to the module/library
+search path?
+
+=item How do I add a directory to my include path (@INC) at runtime?
+
+=item What is socket.ph and where do I get it?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq9 - Networking ($Revision: 1.1.1.5 $, $Date: 2003/01/31 17:36:57
+$)
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item What is the correct form of response from a CGI script?
+
+=item My CGI script runs from the command line but not the browser.  (500
+Server Error)
+
+=item How can I get better error messages from a CGI program?
+
+=item How do I remove HTML from a string?
+
+=item How do I extract URLs?
+
+=item How do I download a file from the user's machine?  How do I open a
+file on another machine?
+
+=item How do I make a pop-up menu in HTML?
+
+=item How do I fetch an HTML file?
+
+=item How do I automate an HTML form submission?
+
+=item How do I decode or create those %-encodings on the web?
+
+=item How do I redirect to another page?
+
+=item How do I put a password on my web pages?
+
+=item How do I edit my .htpasswd and .htgroup files with Perl?
+
+=item How do I make sure users can't enter values into a form that cause my
+CGI script to do bad things?
+
+=item How do I parse a mail header?
+
+=item How do I decode a CGI form?
+
+=item How do I check a valid mail address?
+
+=item How do I decode a MIME/BASE64 string?
+
+=item How do I return the user's mail address?
+
+=item How do I send mail?
+
+=item How do I use MIME to make an attachment to a mail message?
+
+=item How do I read mail?
+
+=item How do I find out my hostname/domainname/IP address?
+
+=item How do I fetch a news article or the active newsgroups?
+
+=item How do I fetch/put an FTP file?
+
+=item How can I do RPC in Perl?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
 
 =back
@@ -186,7 +1694,13 @@
 =item Declarations
 
-=item Simple statements
-
-=item Compound statements
+=item Comments
+
+=item Simple Statements
+
+=item Truth and Falsehood
+
+=item Statement Modifiers
+
+=item Compound Statements
 
 =item Loop Control
@@ -226,4 +1740,6 @@
 =item List value constructors
 
+=item Subscripts
+
 =item Slices
 
@@ -240,9 +1756,9 @@
 =over 4
 
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=over 4
+=item DESCRIPTION
+
+=over 4
+
+=item Operator Precedence and Associativity
 
 =item Terms and List Operators (Leftward)
@@ -399,5 +1915,5 @@
 =item Alphabetical Listing of Perl Functions
 
-I<-X> FILEHANDLE, I<-X> EXPR, I<-X>, abs VALUE, abs, accept
+-I<X> FILEHANDLE, -I<X> EXPR, -I<X>, abs VALUE, abs, accept
 NEWSOCKET,GENERICSOCKET, alarm SECONDS, alarm, atan2 Y,X, bind SOCKET,NAME,
 binmode FILEHANDLE, LAYER, binmode FILEHANDLE, bless REF,CLASSNAME, bless
@@ -462,5 +1978,5 @@
 (PROTO) BLOCK, sub NAME : ATTRS BLOCK, sub NAME (PROTO) : ATTRS BLOCK,
 substr EXPR,OFFSET,LENGTH,REPLACEMENT, substr EXPR,OFFSET,LENGTH, substr
-EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall LIST, sysopen
+EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall NUMBER, LIST, sysopen
 FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread
 FILEHANDLE,SCALAR,LENGTH,OFFSET, sysread FILEHANDLE,SCALAR,LENGTH, sysseek
@@ -480,174 +1996,151 @@
 =back
 
-=head2 perlreftut - Mark's very short tutorial about references
-
-=over 4
-
-=item DESCRIPTION
-
-=item Who Needs Complicated Data Structures?
-
-=item The Solution
-
-=item Syntax
-
-=over 4
-
-=item Making References
-
-=item Using References
-
-=back
-
-=item An Example
-
-=item Arrow Rule
-
-=item Solution
-
-=item The Rest
-
-=item Summary
-
-=item Credits
-
-=over 4
-
-=item Distribution Conditions
-
-=back
-
-=back
-
-=head2 perldsc - Perl Data Structures Cookbook
-
-=over 4
-
-=item DESCRIPTION
-
-arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes,
-more elaborate constructs
-
-=item REFERENCES
-
-=item COMMON MISTAKES
-
-=item CAVEAT ON PRECEDENCE
-
-=item WHY YOU SHOULD ALWAYS C<use strict>
-
-=item DEBUGGING
-
-=item CODE EXAMPLES
-
-=item ARRAYS OF ARRAYS
-
-=over 4
-
-=item Declaration of an ARRAY OF ARRAYS
-
-=item Generation of an ARRAY OF ARRAYS
-
-=item Access and Printing of an ARRAY OF ARRAYS
-
-=back
-
-=item HASHES OF ARRAYS
-
-=over 4
-
-=item Declaration of a HASH OF ARRAYS
-
-=item Generation of a HASH OF ARRAYS
-
-=item Access and Printing of a HASH OF ARRAYS
-
-=back
-
-=item ARRAYS OF HASHES
-
-=over 4
-
-=item Declaration of an ARRAY OF HASHES
-
-=item Generation of an ARRAY OF HASHES
-
-=item Access and Printing of an ARRAY OF HASHES
-
-=back
-
-=item HASHES OF HASHES
-
-=over 4
-
-=item Declaration of a HASH OF HASHES
-
-=item Generation of a HASH OF HASHES
-
-=item Access and Printing of a HASH OF HASHES
-
-=back
-
-=item MORE ELABORATE RECORDS
-
-=over 4
-
-=item Declaration of MORE ELABORATE RECORDS
-
-=item Declaration of a HASH OF COMPLEX RECORDS
-
-=item Generation of a HASH OF COMPLEX RECORDS
-
-=back
-
-=item Database Ties
-
-=item SEE ALSO
-
-=item AUTHOR
-
-=back
-
-=head2 perlrequick - Perl regular expressions quick start
-
-=over 4
-
-=item DESCRIPTION
-
-=item The Guide
-
-=over 4
-
-=item Simple word matching
-
-=item Using character classes
-
-=item Matching this or that
-
-=item Grouping things and hierarchical matching
-
-=item Extracting matches
-
-=item Matching repetitions
-
-=item More matching
-
-=item Search and replace
-
-=item The split operator
-
-=back
-
-=item BUGS
-
-=item SEE ALSO
-
-=item AUTHOR AND COPYRIGHT
-
-=over 4
-
-=item Acknowledgments
-
-=back
+=head2 perlopentut - tutorial on opening things in Perl
+
+=over 4
+
+=item DESCRIPTION
+
+=item Open E<agrave> la shell
+
+=over 4
+
+=item Simple Opens
+
+=item Indirect Filehandles
+
+=item Pipe Opens
+
+=item The Minus File
+
+=item Mixing Reads and Writes
+
+=item Filters 
+
+=back
+
+=item Open E<agrave> la C
+
+=over 4
+
+=item Permissions E<agrave> la mode
+
+=back
+
+=item Obscure Open Tricks
+
+=over 4
+
+=item Re-Opening Files (dups)
+
+=item Dispelling the Dweomer
+
+=item Paths as Opens
+
+=item Single Argument Open
+
+=item Playing with STDIN and STDOUT
+
+=back
+
+=item Other I/O Issues
+
+=over 4
+
+=item Opening Non-File Files
+
+=item Opening Named Pipes
+
+=item Opening Sockets
+
+=item Binary Files
+
+=item File Locking
+
+=item IO Layers
+
+=back
+
+=item SEE ALSO 
+
+=item AUTHOR and COPYRIGHT
+
+=item HISTORY
+
+=back
+
+=head2 perlpacktut - tutorial on C<pack> and C<unpack>
+
+=over 4
+
+=item DESCRIPTION
+
+=item The Basic Principle
+
+=item Packing Text
+
+=item Packing Numbers
+
+=over 4
+
+=item Integers
+
+=item Unpacking a Stack Frame
+
+=item How to Eat an Egg on a Net
+
+=item Floating point Numbers
+
+=back
+
+=item Exotic Templates
+
+=over 4
+
+=item Bit Strings
+
+=item Uuencoding
+
+=item Doing Sums
+
+=item  Unicode
+
+=item Another Portable Binary Encoding
+
+=back
+
+=item Template Grouping
+
+=item Lengths and Widths
+
+=over 4
+
+=item String Lengths
+
+=item Dynamic Templates
+
+=item Counting Repetitions
+
+=back
+
+=item Packing and Unpacking C Structures
+
+=over 4
+
+=item The Alignment Pit
+
+=item Alignment, Take 2
+
+=item Alignment, Take 3
+
+=item Pointers for How to Use Them
+
+=back
+
+=item Pack Recipes
+
+=item Funnies Section
+
+=item Authors
 
 =back
@@ -670,5 +2163,6 @@
 Text>>, C<=head4 I<Heading Text>>, C<=over I<indentlevel>>, C<=item
 I<stuff...>>, C<=back>, C<=cut>, C<=pod>, C<=begin I<formatname>>, C<=end
-I<formatname>>, C<=for I<formatname> I<text...>>
+I<formatname>>, C<=for I<formatname> I<text...>>, C<=encoding
+I<encodingname>>
 
 =item Formatting Codes
@@ -707,5 +2201,6 @@
 
 "=head1", "=head2", "=head3", "=head4", "=pod", "=cut", "=over", "=item",
-"=back", "=begin formatname", "=end formatname", "=for formatname text..."
+"=back", "=begin formatname", "=end formatname", "=for formatname text...",
+"=encoding encodingname"
 
 =item Pod Formatting Codes
@@ -734,97 +2229,4 @@
 =back
 
-=head2 perlstyle - Perl style guide
-
-=over 4
-
-=item DESCRIPTION
-
-=back
-
-=head2 perltrap - Perl traps for the unwary
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item Awk Traps
-
-=item C Traps
-
-=item Sed Traps
-
-=item Shell Traps
-
-=item Perl Traps
-
-=item Perl4 to Perl5 Traps
-
-Discontinuance, Deprecation, and BugFix traps, Parsing Traps, Numerical
-Traps, General data type traps, Context Traps - scalar, list contexts,
-Precedence Traps, General Regular Expression Traps using s///, etc,
-Subroutine, Signal, Sorting Traps, OS Traps, DBM Traps, Unclassified Traps
-
-=item Discontinuance, Deprecation, and BugFix traps
-
-Discontinuance, Deprecation, BugFix, Discontinuance, Discontinuance,
-Discontinuance, BugFix, Discontinuance, Discontinuance, BugFix,
-Discontinuance, Deprecation, Discontinuance, Discontinuance
-
-=item Parsing Traps
-
-Parsing, Parsing, Parsing, Parsing, Parsing
-
-=item Numerical Traps
-
-Numerical, Numerical, Numerical, Bitwise string ops
-
-=item General data type traps
-
-(Arrays), (Arrays), (Hashes), (Globs), (Globs), (Scalar String),
-(Constants), (Scalars), (Variable Suicide)
-
-=item Context Traps - scalar, list contexts
-
-(list context), (scalar context), (scalar context), (list, builtin)
-
-=item Precedence Traps
-
-Precedence, Precedence, Precedence, Precedence, Precedence, Precedence,
-Precedence
-
-=item General Regular Expression Traps using s///, etc.
-
-Regular Expression, Regular Expression, Regular Expression, Regular
-Expression, Regular Expression, Regular Expression, Regular Expression,
-Regular Expression
-
-=item Subroutine, Signal, Sorting Traps
-
-(Signals), (Sort Subroutine), warn() won't let you specify a filehandle
-
-=item OS Traps
-
-(SysV), (SysV)
-
-=item Interpolation Traps
-
-Interpolation, Interpolation, Interpolation, Interpolation, Interpolation,
-Interpolation, Interpolation, Interpolation, Interpolation
-
-=item DBM Traps
-
-DBM, DBM
-
-=item Unclassified Traps
-
-C<require>/C<do> trap using returned value, C<split> on empty string with
-LIMIT specified
-
-=back
-
-=back
-
 =head2 perlrun - how to execute the Perl interpreter
 
@@ -845,8 +2247,9 @@
 =item Command Switches
 
-B<-0>[I<digits>], B<-a>, B<-C>, B<-c>, B<-d>, B<-d:>I<foo[=bar,baz]>,
-B<-D>I<letters>, B<-D>I<number>, B<-e> I<commandline>, B<-F>I<pattern>,
-B<-h>, B<-i>[I<extension>], B<-I>I<directory>, B<-l>[I<octnum>],
-B<-m>[B<->]I<module>, B<-M>[B<->]I<module>, B<-M>[B<->]I<'module ...'>,
+B<-0>[I<octal/hexadecimal>], B<-a>, B<-C [I<number/list>]>, B<-c>, B<-d>,
+B<-d:>I<foo[=bar,baz]>, B<-D>I<letters>, B<-D>I<number>, B<-e>
+I<commandline>, B<-F>I<pattern>, B<-h>, B<-i>[I<extension>],
+B<-I>I<directory>, B<-l>[I<octnum>], B<-m>[B<->]I<module>,
+B<-M>[B<->]I<module>, B<-M>[B<->]I<'module ...'>,
 B<-[mM]>[B<->]I<module=arg[,arg]...>, B<-n>, B<-p>, B<-P>, B<-s>, B<-S>,
 B<-t>, B<-T>, B<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I<name>, B<-w>, B<-W>,
@@ -858,8 +2261,9 @@
 
 HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLIO, :bytes, :crlf, :mmap,
-:perlio, :raw, :stdio, :unix, :utf8, :win32, PERLIO_DEBUG, PERLLIB,
+:perlio, :pop, :raw, :stdio, :unix, :utf8, :win32, PERLIO_DEBUG, PERLLIB,
 PERL5DB, PERL5SHELL (specific to the Win32 port), PERL_DEBUG_MSTATS,
-PERL_DESTRUCT_LEVEL, PERL_ENCODING, PERL_ROOT (specific to the VMS port),
-SYS$LOGIN (specific to the VMS port)
+PERL_DESTRUCT_LEVEL, PERL_DL_NONLAZY, PERL_ENCODING, PERL_HASH_SEED,
+PERL_HASH_SEED_DEBUG, PERL_ROOT (specific to the VMS port), PERL_SIGNALS,
+PERL_UNICODE, SYS$LOGIN (specific to the VMS port)
 
 =back
@@ -904,38 +2308,4 @@
 
 =item AUTHOR
-
-=back
-
-=head2 perldebtut - Perl debugging tutorial
-
-=over 4
-
-=item DESCRIPTION
-
-=item use strict
-
-=item Looking at data and -w and v
-
-=item help
-
-=item Stepping through code
-
-=item Placeholder for a, w, t, T
-
-=item REGULAR EXPRESSIONS
-
-=item OUTPUT TIPS
-
-=item CGI
-
-=item GUIs
-
-=item SUMMARY
-
-=item SEE ALSO
-
-=item AUTHOR
-
-=item CONTRIBUTORS
 
 =back
@@ -960,7 +2330,8 @@
 compile subname, B line, B *, a [line] command, A line, A *, w expr, W
 expr, W *, o, o booloption .., o anyoption? .., o option=value .., < ?, < [
-command ], << command, > ?, > command, >> command, { ?, { [ command ], {{
-command, ! number, ! -number, ! pattern, !! cmd, source file, H -number, q
-or ^D, R, |dbcmd, ||dbcmd, command, m expr, M, man [manpage]
+command ], < *, << command, > ?, > command, > *, >> command, { ?, { [
+command ], { *, {{ command, ! number, ! -number, ! pattern, !! cmd, source
+file, H -number, q or ^D, R, |dbcmd, ||dbcmd, command, m expr, M, man
+[manpage]
 
 =item Configurable Options
@@ -1012,5 +2383,5 @@
 
 $ARG, $_, $a, $b, $<I<digits>>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $',
-$LAST_PAREN_MATCH, $+, $^N, @LAST_MATCH_END, @+, $MULTILINE_MATCHING, $*,
+$LAST_PAREN_MATCH, $+, $^N, @LAST_MATCH_END, @+, $*,
 HANDLE->input_line_number(EXPR), $INPUT_LINE_NUMBER, $NR, $,
 IO::Handle->input_record_separator(EXPR), $INPUT_RECORD_SEPARATOR, $RS, $/,
@@ -1018,5 +2389,5 @@
 IO::Handle->output_field_separator EXPR, $OUTPUT_FIELD_SEPARATOR, $OFS, $,,
 IO::Handle->output_record_separator EXPR, $OUTPUT_RECORD_SEPARATOR, $ORS,
-$\, $LIST_SEPARATOR, $", $SUBSCRIPT_SEPARATOR, $SUBSEP, $;, $OFMT, $#,
+$\, $LIST_SEPARATOR, $", $SUBSCRIPT_SEPARATOR, $SUBSEP, $;, $#,
 HANDLE->format_page_number(EXPR), $FORMAT_PAGE_NUMBER, $%,
 HANDLE->format_lines_per_page(EXPR), $FORMAT_LINES_PER_PAGE, $=,
@@ -1037,8 +2408,8 @@
 $SYSTEM_FD_MAX, $^F, $^H, %^H, $INPLACE_EDIT, $^I, $^M, $OSNAME, $^O,
 ${^OPEN}, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
-0x100, 0x200, $LAST_REGEXP_CODE_RESULT, $^R, $EXCEPTIONS_BEING_CAUGHT, $^S,
-$BASETIME, $^T, ${^TAINT}, $PERL_VERSION, $^V, $WARNING, $^W,
-${^WARNING_BITS}, ${^WIDE_SYSTEM_CALLS}, $EXECUTABLE_NAME, $^X, ARGV,
-$ARGV, @ARGV, ARGVOUT, @F, @INC, @_, %INC, %ENV, $ENV{expr}, %SIG,
+0x100, 0x200, 0x400, $LAST_REGEXP_CODE_RESULT, $^R,
+$EXCEPTIONS_BEING_CAUGHT, $^S, $BASETIME, $^T, ${^TAINT}, ${^UNICODE},
+$PERL_VERSION, $^V, $WARNING, $^W, ${^WARNING_BITS}, $EXECUTABLE_NAME, $^X,
+ARGV, $ARGV, @ARGV, ARGVOUT, @F, @INC, @_, %INC, %ENV, $ENV{expr}, %SIG,
 $SIG{expr}
 
@@ -1050,234 +2421,4 @@
 
 =item BUGS
-
-=back
-
-=head2 perllol - Manipulating Arrays of Arrays in Perl
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item Declaration and Access of Arrays of Arrays
-
-=item Growing Your Own
-
-=item Access and Printing
-
-=item Slices
-
-=back
-
-=item SEE ALSO
-
-=item AUTHOR
-
-=back
-
-=head2 perlopentut - tutorial on opening things in Perl
-
-=over 4
-
-=item DESCRIPTION
-
-=item Open E<agrave> la shell
-
-=over 4
-
-=item Simple Opens
-
-=item Pipe Opens
-
-=item The Minus File
-
-=item Mixing Reads and Writes
-
-=item Filters 
-
-=back
-
-=item Open E<agrave> la C
-
-=over 4
-
-=item Permissions E<agrave> la mode
-
-=back
-
-=item Obscure Open Tricks
-
-=over 4
-
-=item Re-Opening Files (dups)
-
-=item Dispelling the Dweomer
-
-=item Paths as Opens
-
-=item Single Argument Open
-
-=item Playing with STDIN and STDOUT
-
-=back
-
-=item Other I/O Issues
-
-=over 4
-
-=item Opening Non-File Files
-
-=item Binary Files
-
-=item File Locking
-
-=item IO Layers
-
-=back
-
-=item SEE ALSO 
-
-=item AUTHOR and COPYRIGHT
-
-=item HISTORY
-
-=back
-
-=head2 perlpacktut - tutorial on C<pack> and C<unpack>
-
-=over 4
-
-=item DESCRIPTION
-
-=item The Basic Principle
-
-=item Packing Text
-
-=item Packing Numbers
-
-=over 4
-
-=item Integers
-
-=item Unpacking a Stack Frame
-
-=item How to Eat an Egg on a Net
-
-=item Floating point Numbers
-
-=back
-
-=item Exotic Templates
-
-=over 4
-
-=item Bit Strings
-
-=item Uuencoding
-
-=item Doing Sums
-
-=item  Unicode
-
-=item Another Portable Binary Encoding
-
-=back
-
-=item Lengths and Widths
-
-=over 4
-
-=item String Lengths
-
-=item Dynamic Templates
-
-=back
-
-=item Packing and Unpacking C Structures
-
-=over 4
-
-=item The Alignment Pit
-
-=item Alignment, Take 2
-
-=item Alignment, Take 3
-
-=item Pointers for How to Use Them
-
-=back
-
-=item Pack Recipes
-
-=item Funnies Section
-
-=item Authors
-
-=back
-
-=head2 perlretut - Perl regular expressions tutorial
-
-=over 4
-
-=item DESCRIPTION
-
-=item Part 1: The basics
-
-=over 4
-
-=item Simple word matching
-
-=item Using character classes
-
-=item Matching this or that
-
-=item Grouping things and hierarchical matching
-
-=item Extracting matches
-
-=item Matching repetitions
-
-=item Building a regexp
-
-=item Using regular expressions in Perl
-
-=back
-
-=item Part 2: Power tools
-
-=over 4
-
-=item More on characters, strings, and character classes
-
-=item Compiling and saving regular expressions
-
-=item Embedding comments and modifiers in a regular expression
-
-=item Non-capturing groupings
-
-=item Looking ahead and looking behind
-
-=item Using independent subexpressions to prevent backtracking
-
-=item Conditional expressions
-
-=item A bit of magic: executing Perl code in a regular expression
-
-=item Pragmas and debugging
-
-=back
-
-=item BUGS
-
-=item SEE ALSO
-
-=item AUTHOR AND COPYRIGHT
-
-=over 4
-
-=item Acknowledgments
-
-=back
 
 =back
@@ -1329,4 +2470,42 @@
 =back
 
+=head2 perlreref - Perl Regular Expressions Reference
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item OPERATORS
+
+=item SYNTAX
+
+=item ESCAPE SEQUENCES
+
+=item CHARACTER CLASSES
+
+=item ANCHORS
+
+=item QUANTIFIERS
+
+=item EXTENDED CONSTRUCTS
+
+=item VARIABLES
+
+=item FUNCTIONS
+
+=item TERMINOLOGY
+
+=back
+
+=item AUTHOR
+
+=item SEE ALSO
+
+=item THANKS
+
+=back
+
 =head2 perlref - Perl references and nested data structures
 
@@ -1385,246 +2564,30 @@
 =back
 
-=head2 perlboot - Beginner's Object-Oriented Tutorial
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item If we could talk to the animals...
-
-=item Introducing the method invocation arrow
-
-=item Invoking a barnyard
-
-=item The extra parameter of method invocation
-
-=item Calling a second method to simplify things
-
-=item Inheriting the windpipes
-
-=item A few notes about @ISA
-
-=item Overriding the methods
-
-=item Starting the search from a different place
-
-=item The SUPER way of doing things
-
-=item Where we're at so far...
-
-=item A horse is a horse, of course of course -- or is it?
-
-=item Invoking an instance method
-
-=item Accessing the instance data
-
-=item How to build a horse
-
-=item Inheriting the constructor
-
-=item Making a method work with either classes or instances
-
-=item Adding parameters to a method
-
-=item More interesting instances
-
-=item A horse of a different color
+=head2 perlobj - Perl objects
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item An Object is Simply a Reference
+
+=item A Class is Simply a Package
+
+=item A Method is Simply a Subroutine
+
+=item Method Invocation
+
+=item Indirect Object Syntax
+
+=item Default UNIVERSAL methods
+
+isa(CLASS), can(METHOD), VERSION( [NEED] )
+
+=item Destructors
 
 =item Summary
 
-=back
-
-=item SEE ALSO
-
-=item COPYRIGHT
-
-=back
-
-=head2 perltoot - Tom's object-oriented tutorial for perl
-
-=over 4
-
-=item DESCRIPTION
-
-=item Creating a Class
-
-=over 4
-
-=item Object Representation
-
-=item Class Interface
-
-=item Constructors and Instance Methods
-
-=item Planning for the Future: Better Constructors
-
-=item Destructors
-
-=item Other Object Methods
-
-=back
-
-=item Class Data
-
-=over 4
-
-=item Accessing Class Data
-
-=item Debugging Methods
-
-=item Class Destructors
-
-=item Documenting the Interface
-
-=back
-
-=item Aggregation
-
-=item Inheritance
-
-=over 4
-
-=item Overridden Methods
-
-=item Multiple Inheritance
-
-=item UNIVERSAL: The Root of All Objects
-
-=back
-
-=item Alternate Object Representations
-
-=over 4
-
-=item Arrays as Objects
-
-=item Closures as Objects
-
-=back
-
-=item AUTOLOAD: Proxy Methods
-
-=over 4
-
-=item Autoloaded Data Methods
-
-=item Inherited Autoloaded Data Methods
-
-=back
-
-=item Metaclassical Tools
-
-=over 4
-
-=item Class::Struct
-
-=item Data Members as Variables
-
-=back
-
-=item NOTES
-
-=over 4
-
-=item Object Terminology
-
-=back
-
-=item SEE ALSO
-
-=item AUTHOR AND COPYRIGHT
-
-=item COPYRIGHT
-
-=over 4
-
-=item Acknowledgments
-
-=back
-
-=back
-
-=head2 perltooc - Tom's OO Tutorial for Class Data in Perl
-
-=over 4
-
-=item DESCRIPTION
-
-=item Class Data in a Can
-
-=item Class Data as Package Variables
-
-=over 4
-
-=item Putting All Your Eggs in One Basket
-
-=item Inheritance Concerns
-
-=item The Eponymous Meta-Object
-
-=item Indirect References to Class Data
-
-=item Monadic Classes
-
-=item Translucent Attributes
-
-=back
-
-=item Class Data as Lexical Variables
-
-=over 4
-
-=item Privacy and Responsibility 
-
-=item File-Scoped Lexicals
-
-=item More Inheritance Concerns
-
-=item Locking the Door and Throwing Away the Key
-
-=item Translucency Revisited
-
-=back
-
-=item NOTES
-
-=item SEE ALSO
-
-=item AUTHOR AND COPYRIGHT
-
-=item ACKNOWLEDGEMENTS
-
-=item HISTORY
-
-=back
-
-=head2 perlobj - Perl objects
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item An Object is Simply a Reference
-
-=item A Class is Simply a Package
-
-=item A Method is Simply a Subroutine
-
-=item Method Invocation
-
-=item Indirect Object Syntax
-
-=item Default UNIVERSAL methods
-
-isa(CLASS), can(METHOD), VERSION( [NEED] )
-
-=item Destructors
-
-=item Summary
-
 =item Two-Phased Garbage Collection
 
@@ -1632,34 +2595,4 @@
 
 =item SEE ALSO
-
-=back
-
-=head2 perlbot - Bag'o Object Tricks (the BOT)
-
-=over 4
-
-=item DESCRIPTION
-
-=item OO SCALING TIPS
-
-=item INSTANCE VARIABLES
-
-=item SCALAR INSTANCE VARIABLES
-
-=item INSTANCE VARIABLE INHERITANCE
-
-=item OBJECT RELATIONSHIPS
-
-=item OVERRIDING SUPERCLASS METHODS
-
-=item USING RELATIONSHIP WITH SDBM
-
-=item THINKING OF CODE REUSE
-
-=item CLASS CONTEXT AND THE OBJECT
-
-=item INHERITING A CONSTRUCTOR
-
-=item DELEGATION
 
 =back
@@ -1692,5 +2625,5 @@
 USER, HOME, CLOBBER, LIST, TIEHASH classname, LIST, FETCH this, key, STORE
 this, key, value, DELETE this, key, CLEAR this, EXISTS this, key, FIRSTKEY
-this, NEXTKEY this, lastkey, UNTIE this, DESTROY this
+this, NEXTKEY this, lastkey, SCALAR this, UNTIE this, DESTROY this
 
 =item Tying FileHandles
@@ -1714,4 +2647,31 @@
 =back
 
+=head2 perldbmfilter - Perl DBM Filters
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+B<filter_store_key>, B<filter_store_value>, B<filter_fetch_key>,
+B<filter_fetch_value>
+
+=over 4
+
+=item The Filter
+
+=item An Example -- the NULL termination problem.
+
+=item Another Example -- Key is a C int.
+
+=back
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
 =head2 perlipc - Perl interprocess communication (signals, fifos, pipes,
 safe subprocesses, sockets, and semaphores)
@@ -1733,8 +2693,8 @@
 =over 4
 
-=item Deferred Signals
-
-Long running opcodes, Interrupting IO, Signals as "faults", Signals
-triggered by operating system state
+=item Deferred Signals (Safe Signals)
+
+Long running opcodes, Interrupting IO, Restartable system calls, Signals as
+"faults", Signals triggered by operating system state
 
 =back
@@ -1887,6 +2847,4 @@
 =back
 
-=item Native threads
-
 =item What kind of threads are Perl threads?
 
@@ -1903,40 +2861,40 @@
 =item Creating Threads
 
+=item Waiting For A Thread To Exit
+
+=item Ignoring A Thread
+
+=back
+
+=item Threads And Data
+
+=over 4
+
+=item Shared And Unshared Data
+
+=item Thread Pitfalls: Races
+
+=back
+
+=item Synchronization and control
+
+=over 4
+
+=item Controlling access: lock()
+
+=item A Thread Pitfall: Deadlocks
+
+=item Queues: Passing Data Around
+
+=item Semaphores: Synchronizing Data Access
+
+=item Basic semaphores
+
+=item Advanced Semaphores
+
+=item cond_wait() and cond_signal()
+
 =item Giving up control
 
-=item Waiting For A Thread To Exit
-
-=item Ignoring A Thread
-
-=back
-
-=item Threads And Data
-
-=over 4
-
-=item Shared And Unshared Data
-
-=item Thread Pitfalls: Races
-
-=back
-
-=item Synchronization and control
-
-=over 4
-
-=item Controlling access: lock()
-
-=item A Thread Pitfall: Deadlocks
-
-=item Queues: Passing Data Around
-
-=item Semaphores: Synchronizing Data Access
-
-=item Basic semaphores
-
-=item Advanced Semaphores
-
-=item cond_wait() and cond_signal()
-
 =back
 
@@ -1956,4 +2914,6 @@
 
 =item A Complete Example
+
+=item Different implementations of threads
 
 =item Performance considerations
@@ -2124,4 +3084,6 @@
 =item Command names versus file pathnames
 
+=item Networking
+
 =item Interprocess Communication (IPC)
 
@@ -2177,21 +3139,21 @@
 =item Alphabetical Listing of Perl Functions
 
--I<X> FILEHANDLE, -I<X> EXPR, -I<X>, alarm SECONDS, alarm, binmode
-FILEHANDLE, chmod LIST, chown LIST, chroot FILENAME, chroot, crypt
-PLAINTEXT,SALT, dbmclose HASH, dbmopen HASH,DBNAME,MODE, dump LABEL, exec
-LIST, exit EXPR, exit, fcntl FILEHANDLE,FUNCTION,SCALAR, flock
-FILEHANDLE,OPERATION, fork, getlogin, getpgrp PID, getppid, getpriority
-WHICH,WHO, getpwnam NAME, getgrnam NAME, getnetbyname NAME, getpwuid UID,
-getgrgid GID, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER,
-getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent,
-getprotoent, getservent, sethostent STAYOPEN, setnetent STAYOPEN,
-setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, endhostent,
-endnetent, endprotoent, endservent, getsockopt SOCKET,LEVEL,OPTNAME, glob
-EXPR, glob, ioctl FILEHANDLE,FUNCTION,SCALAR, kill SIGNAL, LIST, link
-OLDFILE,NEWFILE, lstat FILEHANDLE, lstat EXPR, lstat, msgctl ID,CMD,ARG,
-msgget KEY,FLAGS, msgsnd ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, open
-FILEHANDLE,EXPR, open FILEHANDLE, pipe READHANDLE,WRITEHANDLE, readlink
-EXPR, readlink, select RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG,
-semget KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP,
+-I<X> FILEHANDLE, -I<X> EXPR, -I<X>, binmode FILEHANDLE, chmod LIST, chown
+LIST, chroot FILENAME, chroot, crypt PLAINTEXT,SALT, dbmclose HASH, dbmopen
+HASH,DBNAME,MODE, dump LABEL, exec LIST, exit EXPR, exit, fcntl
+FILEHANDLE,FUNCTION,SCALAR, flock FILEHANDLE,OPERATION, fork, getlogin,
+getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam NAME, getgrnam NAME,
+getnetbyname NAME, getpwuid UID, getgrgid GID, getnetbyaddr ADDR,ADDRTYPE,
+getprotobynumber NUMBER, getservbyport PORT,PROTO, getpwent, getgrent,
+gethostbyname, gethostent, getnetent, getprotoent, getservent, sethostent
+STAYOPEN, setnetent STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN,
+endpwent, endgrent, endhostent, endnetent, endprotoent, endservent,
+getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, ioctl
+FILEHANDLE,FUNCTION,SCALAR, kill SIGNAL, LIST, link OLDFILE,NEWFILE, lstat
+FILEHANDLE, lstat EXPR, lstat, msgctl ID,CMD,ARG, msgget KEY,FLAGS, msgsnd
+ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, open FILEHANDLE,EXPR, open
+FILEHANDLE, pipe READHANDLE,WRITEHANDLE, readlink EXPR, readlink, select
+RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget
+KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP,
 setpriority WHICH,WHO,PRIORITY, setpwent, setsockopt
 SOCKET,LEVEL,OPTNAME,OPTVAL, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS,
@@ -2379,5 +3341,6 @@
 
 Input and Output Layers, Regular Expressions, C<use utf8> still needed to
-enable UTF-8/UTF-EBCDIC in scripts
+enable UTF-8/UTF-EBCDIC in scripts, C<use encoding> needed to upgrade
+non-Latin-1 byte strings
 
 =item Byte and Character Semantics
@@ -2403,4 +3366,8 @@
 =item Locales
 
+=item When Unicode Does Not Happen
+
+=item Forcing Unicode in Perl (Or Unforcing Unicode in Perl)
+
 =item Using Unicode in XS
 
@@ -2417,4 +3384,6 @@
 =item Speed
 
+=item Porting code from perl-5.6.X
+
 =back
 
@@ -2525,7 +3494,7 @@
 =over 4
 
-=item OS/400 
-
-IFS access
+=item OS/400
+
+PASE, IFS access
 
 =item OS/390, z/OS
@@ -2563,4 +3532,6 @@
 =item Switches On the "#!" Line
 
+=item Taint mode and @INC
+
 =item Cleaning Up Your Path
 
@@ -2571,4 +3542,6 @@
 =item Unicode
 
+=item Algorithmic Complexity Attacks
+
 =back
 
@@ -2589,5 +3562,5 @@
 =item Symbol Tables
 
-=item Package Constructors and Destructors
+=item BEGIN, CHECK, INIT and END
 
 =item Perl Classes
@@ -2603,34 +3576,7 @@
 =back
 
-=head2 perlmodinstall - Installing CPAN Modules
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item PREAMBLE
-
-B<DECOMPRESS> the file, B<UNPACK> the file into a directory, B<BUILD> the
-module (sometimes unnecessary), B<INSTALL> the module
-
-=back
-
-=item PORTABILITY
-
-=item HEY
-
-=item AUTHOR
-
-=item COPYRIGHT
-
-=back
-
 =head2 perlmodlib - constructing new Perl modules and finding existing ones
 
 =over 4
-
-=item DESCRIPTION
 
 =item THE PERL MODULE LIBRARY
@@ -2642,6 +3588,6 @@
 attributes, attrs, autouse, base, bigint, bignum, bigrat, blib, bytes,
 charnames, constant, diagnostics, encoding, fields, filetest, if, integer,
-less, locale, open, ops, overload, re, sigtrap, sort, strict, subs,
-threads, utf8, vars, vmsish, warnings, warnings::register
+less, lib, locale, open, ops, overload, re, sigtrap, sort, strict, subs,
+threads, threads::shared, utf8, vars, vmsish, warnings, warnings::register
 
 =item Standard Modules
@@ -2653,44 +3599,63 @@
 CGI::Cookie, CGI::Fast, CGI::Pretty, CGI::Push, CGI::Switch, CGI::Util,
 CPAN, CPAN::FirstTime, CPAN::Nox, Carp, Carp::Heavy, Class::ISA,
-Class::Struct, Config, Cwd, DB, DB_File, Devel::SelfStubber, Digest,
-DirHandle, Dumpvalue, Encode, English, Env, Errno, Exporter,
-Exporter::Heavy, ExtUtils::Command, ExtUtils::Command::MM,
-ExtUtils::Constant, ExtUtils::Embed, ExtUtils::Install,
-ExtUtils::Installed, ExtUtils::Liblist, ExtUtils::MM, ExtUtils::MM_Any,
-ExtUtils::MM_BeOS, ExtUtils::MM_Cygwin, ExtUtils::MM_DOS,
-ExtUtils::MM_MacOS, ExtUtils::MM_NW5, ExtUtils::MM_OS2, ExtUtils::MM_UWIN,
-ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MM_Win32,
-ExtUtils::MM_Win95, ExtUtils::MY, ExtUtils::MakeMaker, ExtUtils::Manifest,
-ExtUtils::Mkbootstrap, ExtUtils::Mksymlists, ExtUtils::Packlist,
-ExtUtils::testlib, Fatal, Fcntl, File::Basename, File::CheckTree,
-File::Compare, File::Copy, File::DosGlob, File::Find, File::Path,
-File::Spec, File::Spec::Cygwin, File::Spec::Epoc, File::Spec::Functions,
-File::Spec::Mac, File::Spec::OS2, File::Spec::Unix, File::Spec::VMS,
-File::Spec::Win32, File::Temp, File::stat, FileCache, FileHandle,
-Filter::Simple, FindBin, Getopt::Long, Getopt::Std, Hash::Util,
-I18N::Collate, I18N::LangTags, I18N::LangTags::List, IO, IPC::Open2,
-IPC::Open3, Locale::Constants, Locale::Country, Locale::Currency,
-Locale::Language, Locale::Maketext, Locale::Maketext::TPJ13,
-Locale::Script, Math::BigFloat, Math::BigInt, Math::BigInt::Calc,
-Math::BigRat, Math::Complex, Math::Trig, Memoize, Memoize::AnyDBM_File,
-Memoize::Expire, Memoize::ExpireFile, Memoize::ExpireTest,
-Memoize::NDBM_File, Memoize::SDBM_File, Memoize::Storable, NDBM_File, NEXT,
-Net::Cmd, Net::Config, Net::Domain, Net::FTP, Net::NNTP, Net::Netrc,
-Net::POP3, Net::Ping, Net::SMTP, Net::Time, Net::hostent, Net::libnetFAQ,
-Net::netent, Net::protoent, Net::servent, O, ODBM_File, Opcode, POSIX,
-PerlIO, PerlIO::via::QuotedPrint, Pod::Checker, Pod::Find, Pod::Functions,
-Pod::Html, Pod::InputObjects, Pod::LaTeX, Pod::Man, Pod::ParseLink,
-Pod::ParseUtils, Pod::Parser, Pod::Plainer, Pod::Select, Pod::Text,
-Pod::Text::Color, Pod::Text::Overstrike, Pod::Text::Termcap, Pod::Usage,
-SDBM_File, Safe, Search::Dict, SelectSaver, SelfLoader, Shell, Socket,
-Storable, Switch, Symbol, Term::ANSIColor, Term::Cap, Term::Complete,
-Term::ReadLine, Test, Test::Builder, Test::Harness, Test::Harness::Assert,
-Test::Harness::Iterator, Test::Harness::Straps, Test::More, Test::Simple,
-Test::Tutorial, Text::Abbrev, Text::Balanced, Text::ParseWords,
-Text::Soundex, Text::Tabs, Text::Wrap, Thread, Thread::Queue,
-Thread::Semaphore, Tie::Array, Tie::File, Tie::Handle, Tie::Hash,
-Tie::Memoize, Tie::RefHash, Tie::Scalar, Tie::SubstrHash, Time::Local,
-Time::gmtime, Time::localtime, Time::tm, UNIVERSAL, Unicode::Collate,
-Unicode::UCD, User::grent, User::pwent, Win32
+Class::Struct, Config, Cwd, DB, DB_File, Data::Dumper, Devel::DProf,
+Devel::PPPort, Devel::Peek, Devel::SelfStubber, Digest, Digest::MD5,
+Digest::base, DirHandle, Dumpvalue, DynaLoader, Encode, Encode::Alias,
+Encode::Byte, Encode::CJKConstants, Encode::CN, Encode::CN::HZ,
+Encode::Config, Encode::EBCDIC, Encode::Encoder, Encode::Encoding,
+Encode::Guess, Encode::JP, Encode::JP::H2Z, Encode::JP::JIS7, Encode::KR,
+Encode::KR::2022_KR, Encode::MIME::Header, Encode::PerlIO,
+Encode::Supported, Encode::Symbol, Encode::TW, Encode::Unicode,
+Encode::Unicode::UTF7, English, Env, Errno, Exporter, Exporter::Heavy,
+ExtUtils::Command, ExtUtils::Command::MM, ExtUtils::Constant,
+ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtUtils::Liblist,
+ExtUtils::MM, ExtUtils::MM_Any, ExtUtils::MM_BeOS, ExtUtils::MM_Cygwin,
+ExtUtils::MM_DOS, ExtUtils::MM_MacOS, ExtUtils::MM_NW5, ExtUtils::MM_OS2,
+ExtUtils::MM_UWIN, ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MM_Win32,
+ExtUtils::MM_Win95, ExtUtils::MY, ExtUtils::MakeMaker,
+ExtUtils::MakeMaker::FAQ, ExtUtils::MakeMaker::Tutorial,
+ExtUtils::MakeMaker::bytes, ExtUtils::MakeMaker::vmsish,
+ExtUtils::Manifest, ExtUtils::Mkbootstrap, ExtUtils::Mksymlists,
+ExtUtils::Packlist, ExtUtils::testlib, Fatal, Fcntl, File::Basename,
+File::CheckTree, File::Compare, File::Copy, File::DosGlob, File::Find,
+File::Glob, File::Path, File::Spec, File::Spec::Cygwin, File::Spec::Epoc,
+File::Spec::Functions, File::Spec::Mac, File::Spec::OS2, File::Spec::Unix,
+File::Spec::VMS, File::Spec::Win32, File::Temp, File::stat, FileCache,
+FileHandle, Filter::Simple, Filter::Util::Call, FindBin, GDBM_File,
+Getopt::Long, Getopt::Std, Hash::Util, I18N::Collate, I18N::LangTags,
+I18N::LangTags::List, I18N::Langinfo, IO, IO::Dir, IO::File, IO::Handle,
+IO::Pipe, IO::Poll, IO::Seekable, IO::Select, IO::Socket, IO::Socket::INET,
+IO::Socket::UNIX, IPC::Open2, IPC::Open3, IPC::SysV, IPC::SysV::Msg,
+IPC::SysV::Semaphore, List::Util, Locale::Constants, Locale::Country,
+Locale::Currency, Locale::Language, Locale::Maketext,
+Locale::Maketext::TPJ13, Locale::Script, MIME::Base64,
+MIME::Base64::QuotedPrint, Math::BigFloat, Math::BigInt,
+Math::BigInt::Calc, Math::BigRat, Math::Complex, Math::Trig, Memoize,
+Memoize::AnyDBM_File, Memoize::Expire, Memoize::ExpireFile,
+Memoize::ExpireTest, Memoize::NDBM_File, Memoize::SDBM_File,
+Memoize::Storable, NDBM_File, NEXT, Net::Cmd, Net::Config, Net::Domain,
+Net::FTP, Net::NNTP, Net::Netrc, Net::POP3, Net::Ping, Net::SMTP,
+Net::Time, Net::hostent, Net::libnetFAQ, Net::netent, Net::protoent,
+Net::servent, O, ODBM_File, Opcode, POSIX, PerlIO, PerlIO::encoding,
+PerlIO::scalar, PerlIO::via, PerlIO::via::QuotedPrint, Pod::Checker,
+Pod::Find, Pod::Functions, Pod::Html, Pod::InputObjects, Pod::LaTeX,
+Pod::Man, Pod::ParseLink, Pod::ParseUtils, Pod::Parser,
+Pod::Perldoc::ToChecker, Pod::Perldoc::ToMan, Pod::Perldoc::ToNroff,
+Pod::Perldoc::ToPod, Pod::Perldoc::ToRtf, Pod::Perldoc::ToText,
+Pod::Perldoc::ToTk, Pod::Perldoc::ToXml, Pod::PlainText, Pod::Plainer,
+Pod::Select, Pod::Text, Pod::Text::Color, Pod::Text::Overstrike,
+Pod::Text::Termcap, Pod::Usage, SDBM_File, Safe, Scalar::Util,
+Search::Dict, SelectSaver, SelfLoader, Shell, Socket, Storable, Switch,
+Symbol, Sys::Hostname, Sys::Syslog, Term::ANSIColor, Term::Cap,
+Term::Complete, Term::ReadLine, Test, Test::Builder, Test::Harness,
+Test::Harness::Assert, Test::Harness::Iterator, Test::Harness::Straps,
+Test::More, Test::Simple, Test::Tutorial, Text::Abbrev, Text::Balanced,
+Text::ParseWords, Text::Soundex, Text::Tabs, Text::Wrap, Thread,
+Thread::Queue, Thread::Semaphore, Thread::Signal, Thread::Specific,
+Tie::Array, Tie::File, Tie::Handle, Tie::Hash, Tie::Memoize, Tie::RefHash,
+Tie::Scalar, Tie::SubstrHash, Time::HiRes, Time::Local, Time::gmtime,
+Time::localtime, Time::tm, UNIVERSAL, Unicode::Collate, Unicode::Normalize,
+Unicode::UCD, User::grent, User::pwent, Win32, XS::APItest, XS::Typemap,
+XSLoader
 
 =item Extension Modules
@@ -2708,6 +3673,6 @@
 =item Asia
 
-China, India, Indonesia, Israel, Japan, Korea, Philippines, Russian
-Federation, Saudi Arabia, Singapore, South Korea, Taiwan, Thailand
+China, Indonesia, Israel, Japan, Malaysia, Russian Federation, Saudi
+Arabia, Singapore, South Korea, Taiwan, Thailand
 
 =item Central America
@@ -2717,24 +3682,21 @@
 =item Europe
 
-Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Estonia,
-Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia,
-Lithuania, Netherlands, Norway, Poland, Portugal, Romania, Russia,
-Slovakia, Slovenia, Spain, Sweden, Switzerland, Turkey, Ukraine, United
-Kingdom
+Austria, Belgium, Bosnia and Herzegovina, Bulgaria, Croatia, Czech
+Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary,
+Iceland, Ireland, Italy, Latvia, Lithuania, Netherlands, Norway, Poland,
+Portugal, Romania, Russia, Slovakia, Slovenia, Spain, Sweden, Switzerland,
+Turkey, Ukraine, United Kingdom
 
 =item North America
 
-Alberta, Manitoba, Nova Scotia, Ontario, Quebec, Mexico
-
-=item United States
-
+Canada, Alberta, Manitoba, Nova Scotia, Ontario, Mexico, United States,
 Alabama, California, Colorado, Delaware, District of Columbia, Florida,
-Illinois, Indiana, Kentucky, Massachusetts, Michigan, New Jersey, New York,
-North Carolina, Ohio, Oklahoma, Oregon, Pennsylvania, Tennessee, Texas,
-Utah, Virginia, ashington, Wisconsin
+Indiana, Kentucky, Massachusetts, Michigan, Nevada, New Jersey, New York,
+North Carolina, Oklahoma, Oregon, Pennsylvania, Tennessee, Texas, Utah,
+Virginia, Washington, Wisconsin
 
 =item Oceania
 
-Australia, New Zealand
+Australia, New Zealand, United States
 
 =item South America
@@ -2824,4 +3786,7 @@
 =item README, INSTALL, release notes, changelogs
 
+perl Makefile.PL, make, make test, make install, perl Build.PL, perl Build,
+perl Build test, perl Build install
+
 =back
 
@@ -2856,8 +3821,34 @@
 =item SEE ALSO
 
-L<perlstyle>, L<perlnewmod>, L<perlpod>, L<podchecker>, Testing tools,
-http://pause.perl.org/, Any good book on software engineering
-
-=item AUTHOR
+L<perlstyle>, L<perlnewmod>, L<perlpod>, L<podchecker>, Packaging Tools,
+Testing tools, http://pause.perl.org/, Any good book on software
+engineering
+
+=item AUTHOR
+
+=back
+
+=head2 perlmodinstall - Installing CPAN Modules
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item PREAMBLE
+
+B<DECOMPRESS> the file, B<UNPACK> the file into a directory, B<BUILD> the
+module (sometimes unnecessary), B<INSTALL> the module
+
+=back
+
+=item PORTABILITY
+
+=item HEY
+
+=item AUTHOR
+
+=item COPYRIGHT
 
 =back
@@ -2898,843 +3889,35 @@
 =back
 
-=head2 perlfaq1 - General Questions About Perl ($Revision: 1.1.1.4 $, $Date:
-2002/04/07 18:46:13 $)
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item What is Perl?
-
-=item Who supports Perl?  Who develops it?  Why is it free?
-
-=item Which version of Perl should I use?
-
-=item What are perl4 and perl5?
-
-=item What is perl6?
-
-=item How stable is Perl?
-
-=item Is Perl difficult to learn?
-
-=item How does Perl compare with other languages like Java, Python, REXX,
-Scheme, or Tcl?
-
-=item Can I do [task] in Perl?
-
-=item When shouldn't I program in Perl?
-
-=item What's the difference between "perl" and "Perl"?
-
-=item Is it a Perl program or a Perl script?
-
-=item What is a JAPH?
-
-=item Where can I get a list of Larry Wall witticisms?
-
-=item How can I convince my sysadmin/supervisor/employees to use version
-5/5.6.1/Perl instead of some other language?
-
-=back
-
-=item AUTHOR AND COPYRIGHT
-
-=back
-
-=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.1.1.4 $,
-$Date: 2003-01-10 13:46:05 $)
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item What machines support Perl?  Where do I get it?
-
-=item How can I get a binary version of Perl?
-
-=item I don't have a C compiler on my system.  How can I compile perl?
-
-=item I copied the Perl binary from one machine to another, but scripts
-don't work.
-
-=item I grabbed the sources and tried to compile but gdbm/dynamic
-loading/malloc/linking/... failed.  How do I make it work?
-
-=item What modules and extensions are available for Perl?  What is CPAN? 
-What does CPAN/src/... mean?
-
-=item Is there an ISO or ANSI certified version of Perl?
-
-=item Where can I get information on Perl?
-
-=item What are the Perl newsgroups on Usenet?  Where do I post questions?
-
-=item Where should I post source code?
-
-=item Perl Books
-
-References, Tutorials, Task-Oriented, Special Topics
-
-=item Perl in Magazines
-
-=item Perl on the Net: FTP and WWW Access
-
-=item What mailing lists are there for Perl?
-
-=item Archives of comp.lang.perl.misc
-
-=item Where can I buy a commercial version of Perl?
-
-=item Where do I send bug reports?
-
-=item What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org?
-
-=back
-
-=item AUTHOR AND COPYRIGHT
-
-=back
-
-=head2 perlfaq3 - Programming Tools ($Revision: 1.1.1.4 $, $Date: 2002/05/06
-13:11:13 $)
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item How do I do (anything)?
-
-=item How can I use Perl interactively?
-
-=item Is there a Perl shell?
-
-=item How do I debug my Perl programs?
-
-=item How do I profile my Perl programs?
-
-=item How do I cross-reference my Perl programs?
-
-=item Is there a pretty-printer (formatter) for Perl?
-
-=item Is there a ctags for Perl?
-
-=item Is there an IDE or Windows Perl Editor?
-
-Komodo, The Object System, Open Perl IDE, PerlBuilder, visiPerl+, OptiPerl,
-CodeMagicCD, GNU Emacs, MicroEMACS, XEmacs, Elvis, Vile, Vim, Codewright,
-MultiEdit, SlickEdit, Bash, Ksh, Tcsh, Zsh, BBEdit and BBEdit Lite, Alpha
-
-=item Where can I get Perl macros for vi?
-
-=item Where can I get perl-mode for emacs?
-
-=item How can I use curses with Perl?
-
-=item How can I use X or Tk with Perl?
-
-=item How can I generate simple menus without using CGI or Tk?
-
-=item How can I make my Perl program run faster?
-
-=item How can I make my Perl program take less memory?
-
-Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and
-stringification, Pass by reference, Tie large variables to disk
-
-=item Is it unsafe to return a pointer to local data?
-
-=item How can I free an array or hash so my program shrinks?
-
-=item How can I make my CGI script more efficient?
-
-=item How can I hide the source for my Perl program?
-
-=item How can I compile my Perl program into byte code or C?
-
-=item How can I compile Perl into Java?
-
-=item How can I get C<#!perl> to work on [MS-DOS,NT,...]?
-
-=item Can I write useful Perl programs on the command line?
-
-=item Why don't Perl one-liners work on my DOS/Mac/VMS system?
-
-=item Where can I learn about CGI or Web programming in Perl?
-
-=item Where can I learn about object-oriented Perl programming?
-
-=item Where can I learn about linking C with Perl? [h2xs, xsubpp]
-
-=item I've read perlembed, perlguts, etc., but I can't embed perl in
-my C program; what am I doing wrong?
-
-=item When I tried to run my script, I got this message. What does it mean?
-
-=item What's MakeMaker?
-
-=back
-
-=item AUTHOR AND COPYRIGHT
-
-=back
-
-=head2 perlfaq4 - Data Manipulation ($Revision: 1.1.1.4 $, $Date: 2002/05/30
-07:04:25 $)
-
-=over 4
-
-=item DESCRIPTION
-
-=item Data: Numbers
-
-=over 4
-
-=item Why am I getting long decimals (eg, 19.9499999999999) instead of the
-numbers I should be getting (eg, 19.95)?
-
-=item Why isn't my octal data interpreted correctly?
-
-=item Does Perl have a round() function?  What about ceil() and floor()? 
-Trig functions?
-
-=item How do I convert between numeric representations?
-
-How do I convert hexadecimal into decimal, How do I convert from decimal to
-hexadecimal, How do I convert from octal to decimal, How do I convert from
-decimal to octal, How do I convert from binary to decimal, How do I convert
-from decimal to binary
-
-=item Why doesn't & work the way I want it to?
-
-=item How do I multiply matrices?
-
-=item How do I perform an operation on a series of integers?
-
-=item How can I output Roman numerals?
-
-=item Why aren't my random numbers random?
-
-=item How do I get a random number between X and Y?
-
-=back
-
-=item Data: Dates
-
-=over 4
-
-=item How do I find the week-of-the-year/day-of-the-year?
-
-=item How do I find the current century or millennium?
-
-=item How can I compare two dates and find the difference?
-
-=item How can I take a string and turn it into epoch seconds?
-
-=item How can I find the Julian Day?
-
-=item How do I find yesterday's date?
-
-=item Does Perl have a Year 2000 problem?  Is Perl Y2K compliant?
-
-=back
-
-=item Data: Strings
-
-=over 4
-
-=item How do I validate input?
-
-=item How do I unescape a string?
-
-=item How do I remove consecutive pairs of characters?
-
-=item How do I expand function calls in a string?
-
-=item How do I find matching/nesting anything?
-
-=item How do I reverse a string?
-
-=item How do I expand tabs in a string?
-
-=item How do I reformat a paragraph?
-
-=item How can I access/change the first N letters of a string?
-
-=item How do I change the Nth occurrence of something?
-
-=item How can I count the number of occurrences of a substring within a
-string?
-
-=item How do I capitalize all the words on one line?
-
-=item How can I split a [character] delimited string except when inside
-[character]? (Comma-separated files)
-
-=item How do I strip blank space from the beginning/end of a string?
-
-=item How do I pad a string with blanks or pad a number with zeroes?
-
-=item How do I extract selected columns from a string?
-
-=item How do I find the soundex value of a string?
-
-=item How can I expand variables in text strings?
-
-=item What's wrong with always quoting "$vars"?
-
-=item Why don't my <<HERE documents work?
-
-1. There must be no space after the << part, 2. There (probably) should be
-a semicolon at the end, 3. You can't (easily) have any space in front of
-the tag
-
-=back
-
-=item Data: Arrays
-
-=over 4
-
-=item What is the difference between a list and an array?
-
-=item What is the difference between $array[1] and @array[1]?
-
-=item How can I remove duplicate elements from a list or array?
-
-a), b), c), d), e)
-
-=item How can I tell whether a certain element is contained in a list or
-array?
-
-=item How do I compute the difference of two arrays?  How do I compute the
-intersection of two arrays?
-
-=item How do I test whether two arrays or hashes are equal?
-
-=item How do I find the first array element for which a condition is true?
-
-=item How do I handle linked lists?
-
-=item How do I handle circular lists?
-
-=item How do I shuffle an array randomly?
-
-=item How do I process/modify each element of an array?
-
-=item How do I select a random element from an array?
-
-=item How do I permute N elements of a list?
-
-=item How do I sort an array by (anything)?
-
-=item How do I manipulate arrays of bits?
-
-=item Why does defined() return true on empty arrays and hashes?
-
-=back
-
-=item Data: Hashes (Associative Arrays)
-
-=over 4
-
-=item How do I process an entire hash?
-
-=item What happens if I add or remove keys from a hash while iterating over
-it?
-
-=item How do I look up a hash element by value?
-
-=item How can I know how many entries are in a hash?
-
-=item How do I sort a hash (optionally by value instead of key)?
-
-=item How can I always keep my hash sorted?
-
-=item What's the difference between "delete" and "undef" with hashes?
-
-=item Why don't my tied hashes make the defined/exists distinction?
-
-=item How do I reset an each() operation part-way through?
-
-=item How can I get the unique keys from two hashes?
-
-=item How can I store a multidimensional array in a DBM file?
-
-=item How can I make my hash remember the order I put elements into it?
-
-=item Why does passing a subroutine an undefined element in a hash create
-it?
-
-=item How can I make the Perl equivalent of a C structure/C++ class/hash or
-array of hashes or arrays?
-
-=item How can I use a reference as a hash key?
-
-=back
-
-=item Data: Misc
-
-=over 4
-
-=item How do I handle binary data correctly?
-
-=item How do I determine whether a scalar is a number/whole/integer/float?
-
-=item How do I keep persistent data across program calls?
-
-=item How do I print out or copy a recursive data structure?
-
-=item How do I define methods for every class/object?
-
-=item How do I verify a credit card checksum?
-
-=item How do I pack arrays of doubles or floats for XS code?
-
-=back
-
-=item AUTHOR AND COPYRIGHT
-
-=back
-
-=head2 perlfaq5 - Files and Formats ($Revision: 1.1.1.4 $, $Date: 2002/05/30
-07:04:25 $)
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item How do I flush/unbuffer an output filehandle?  Why must I do this?
-
-=item How do I change one line in a file/delete a line in a file/insert a
-line in the middle of a file/append to the beginning of a file?
-
-=item How do I count the number of lines in a file?
-
-=item How do I make a temporary file name?
-
-=item How can I manipulate fixed-record-length files?
-
-=item How can I make a filehandle local to a subroutine?  How do I pass
-filehandles between subroutines?  How do I make an array of filehandles?
-
-=item How can I use a filehandle indirectly?
-
-=item How can I set up a footer format to be used with write()?
-
-=item How can I write() into a string?
-
-=item How can I output my numbers with commas added?
-
-=item How can I translate tildes (~) in a filename?
-
-=item How come when I open a file read-write it wipes it out?
-
-=item Why do I sometimes get an "Argument list too long" when I use <*>?
-
-=item Is there a leak/bug in glob()?
-
-=item How can I open a file with a leading ">" or trailing blanks?
-
-=item How can I reliably rename a file?
-
-=item How can I lock a file?
-
-=item Why can't I just open(FH, ">file.lock")?
-
-=item I still don't get locking.  I just want to increment the number in
-the file.  How can I do this?
-
-=item All I want to do is append a small amount of text to the end of a
-file.  Do I still have to use locking?
-
-=item How do I randomly update a binary file?
-
-=item How do I get a file's timestamp in perl?
-
-=item How do I set a file's timestamp in perl?
-
-=item How do I print to more than one file at once?
-
-=item How can I read in an entire file all at once?
-
-=item How can I read in a file by paragraphs?
-
-=item How can I read a single character from a file?  From the keyboard?
-
-=item How can I tell whether there's a character waiting on a filehandle?
-
-=item How do I do a C<tail -f> in perl?
-
-=item How do I dup() a filehandle in Perl?
-
-=item How do I close a file descriptor by number?
-
-=item Why can't I use "C:\temp\foo" in DOS paths?  Why doesn't
-`C:\temp\foo.exe` work?
-
-=item Why doesn't glob("*.*") get all the files?
-
-=item Why does Perl let me delete read-only files?  Why does C<-i> clobber
-protected files?  Isn't this a bug in Perl?
-
-=item How do I select a random line from a file?
-
-=item Why do I get weird spaces when I print an array of lines?
-
-=back
-
-=item AUTHOR AND COPYRIGHT
-
-=back
-
-=head2 perlfaq6 - Regular Expressions ($Revision: 1.1.1.4 $, $Date: 2002/06/01
-22:31:09 $)
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item How can I hope to use regular expressions without creating illegible
-and unmaintainable code?
-
-Comments Outside the Regex, Comments Inside the Regex, Different Delimiters
-
-=item I'm having trouble matching over more than one line.  What's wrong?
-
-=item How can I pull out lines between two patterns that are themselves on
-different lines?
-
-=item I put a regular expression into $/ but it didn't work. What's wrong?
-
-=item How do I substitute case insensitively on the LHS while preserving
-case on the RHS?
-
-=item How can I make C<\w> match national character sets?
-
-=item How can I match a locale-smart version of C</[a-zA-Z]/>?
-
-=item How can I quote a variable to use in a regex?
-
-=item What is C</o> really for?
-
-=item How do I use a regular expression to strip C style comments from a
-file?
-
-=item Can I use Perl regular expressions to match balanced text?
-
-=item What does it mean that regexes are greedy?  How can I get around it?
-
-=item How do I process each word on each line?
-
-=item How can I print out a word-frequency or line-frequency summary?
-
-=item How can I do approximate matching?
-
-=item How do I efficiently match many regular expressions at once?
-
-=item Why don't word-boundary searches with C<\b> work for me?
-
-=item Why does using $&, $`, or $' slow my program down?
-
-=item What good is C<\G> in a regular expression?
-
-=item Are Perl regexes DFAs or NFAs?  Are they POSIX compliant?
-
-=item What's wrong with using grep or map in a void context?
-
-=item How can I match strings with multibyte characters?
-
-=item How do I match a pattern that is supplied by the user?
-
-=back
-
-=item AUTHOR AND COPYRIGHT
-
-=back
-
-=head2 perlfaq7 - General Perl Language Issues ($Revision: 1.1.1.4 $, $Date:
-2002/03/26 15:48:32 $)
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item Can I get a BNF/yacc/RE for the Perl language?
-
-=item What are all these $@%&* punctuation signs, and how do I know when to
-use them?
-
-=item Do I always/never have to quote my strings or use semicolons and
-commas?
-
-=item How do I skip some return values?
-
-=item How do I temporarily block warnings?
-
-=item What's an extension?
-
-=item Why do Perl operators have different precedence than C operators?
-
-=item How do I declare/create a structure?
-
-=item How do I create a module?
-
-=item How do I create a class?
-
-=item How can I tell if a variable is tainted?
-
-=item What's a closure?
-
-=item What is variable suicide and how can I prevent it?
-
-=item How can I pass/return a {Function, FileHandle, Array, Hash, Method,
-Regex}?
-
-Passing Variables and Functions, Passing Filehandles, Passing Regexes,
-Passing Methods
-
-=item How do I create a static variable?
-
-=item What's the difference between dynamic and lexical (static) scoping? 
-Between local() and my()?
-
-=item How can I access a dynamic variable while a similarly named lexical
-is in scope?
-
-=item What's the difference between deep and shallow binding?
-
-=item Why doesn't "my($foo) = <FILE>;" work right?
-
-=item How do I redefine a builtin function, operator, or method?
-
-=item What's the difference between calling a function as &foo and foo()?
-
-=item How do I create a switch or case statement?
-
-=item How can I catch accesses to undefined variables/functions/methods?
-
-=item Why can't a method included in this same file be found?
-
-=item How can I find out my current package?
-
-=item How can I comment out a large block of perl code?
-
-=item How do I clear a package?
-
-=item How can I use a variable as a variable name?
-
-=back
-
-=item AUTHOR AND COPYRIGHT
-
-=back
-
-=head2 perlfaq8 - System Interaction ($Revision: 1.1.1.4 $, $Date: 2002/05/16
-12:41:42 $)
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item How do I find out which operating system I'm running under?
-
-=item How come exec() doesn't return?
-
-=item How do I do fancy stuff with the keyboard/screen/mouse?
-
-Keyboard, Screen, Mouse
-
-=item How do I print something out in color?
-
-=item How do I read just one key without waiting for a return key?
-
-=item How do I check whether input is ready on the keyboard?
-
-=item How do I clear the screen?
-
-=item How do I get the screen size?
-
-=item How do I ask the user for a password?
-
-=item How do I read and write the serial port?
-
-lockfiles, open mode, end of line, flushing output, non-blocking input
-
-=item How do I decode encrypted password files?
-
-=item How do I start a process in the background?
-
-STDIN, STDOUT, and STDERR are shared, Signals, Zombies
-
-=item How do I trap control characters/signals?
-
-=item How do I modify the shadow password file on a Unix system?
-
-=item How do I set the time and date?
-
-=item How can I sleep() or alarm() for under a second?
-
-=item How can I measure time under a second?
-
-=item How can I do an atexit() or setjmp()/longjmp()? (Exception handling)
-
-=item Why doesn't my sockets program work under System V (Solaris)?  What
-does the error message "Protocol not supported" mean?
-
-=item How can I call my system's unique C functions from Perl?
-
-=item Where do I get the include files to do ioctl() or syscall()?
-
-=item Why do setuid perl scripts complain about kernel problems?
-
-=item How can I open a pipe both to and from a command?
-
-=item Why can't I get the output of a command with system()?
-
-=item How can I capture STDERR from an external command?
-
-=item Why doesn't open() return an error when a pipe open fails?
-
-=item What's wrong with using backticks in a void context?
-
-=item How can I call backticks without shell processing?
-
-=item Why can't my script read from STDIN after I gave it EOF (^D on Unix,
-^Z on MS-DOS)?
-
-=item How can I convert my shell script to perl?
-
-=item Can I use perl to run a telnet or ftp session?
-
-=item How can I write expect in Perl?
-
-=item Is there a way to hide perl's command line from programs such as
-"ps"?
-
-=item I {changed directory, modified my environment} in a perl script.	How
-come the change disappeared when I exited the script?  How do I get my
-changes to be visible?
-
-Unix
-
-=item How do I close a process's filehandle without waiting for it to
-complete?
-
-=item How do I fork a daemon process?
-
-=item How do I find out if I'm running interactively or not?
-
-=item How do I timeout a slow event?
-
-=item How do I set CPU limits?
-
-=item How do I avoid zombies on a Unix system?
-
-=item How do I use an SQL database?
-
-=item How do I make a system() exit on control-C?
-
-=item How do I open a file without blocking?
-
-=item How do I install a module from CPAN?
-
-=item What's the difference between require and use?
-
-=item How do I keep my own module/library directory?
-
-=item How do I add the directory my program lives in to the module/library
-search path?
-
-=item How do I add a directory to my include path at runtime?
-
-=item What is socket.ph and where do I get it?
-
-=back
-
-=item AUTHOR AND COPYRIGHT
-
-=back
-
-=head2 perlfaq9 - Networking ($Revision: 1.1.1.4 $, $Date: 2002/04/07 18:46:13
-$)
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item What is the correct form of response from a CGI script?
-
-=item My CGI script runs from the command line but not the browser.  (500
-Server Error)
-
-=item How can I get better error messages from a CGI program?
-
-=item How do I remove HTML from a string?
-
-=item How do I extract URLs?
-
-=item How do I download a file from the user's machine?  How do I open a
-file on another machine?
-
-=item How do I make a pop-up menu in HTML?
-
-=item How do I fetch an HTML file?
-
-=item How do I automate an HTML form submission?
-
-=item How do I decode or create those %-encodings on the web?
-
-=item How do I redirect to another page?
-
-=item How do I put a password on my web pages?
-
-=item How do I edit my .htpasswd and .htgroup files with Perl?
-
-=item How do I make sure users can't enter values into a form that cause my
-CGI script to do bad things?
-
-=item How do I parse a mail header?
-
-=item How do I decode a CGI form?
-
-=item How do I check a valid mail address?
-
-=item How do I decode a MIME/BASE64 string?
-
-=item How do I return the user's mail address?
-
-=item How do I send mail?
-
-=item How do I use MIME to make an attachment to a mail message?
-
-=item How do I read mail?
-
-=item How do I find out my hostname/domainname/IP address?
-
-=item How do I fetch a news article or the active newsgroups?
-
-=item How do I fetch/put an FTP file?
-
-=item How can I do RPC in Perl?
-
-=back
-
-=item AUTHOR AND COPYRIGHT
+=head2 perlutil - utilities packaged with the Perl distribution
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item DOCUMENTATION
+
+L<perldoc|perldoc>, L<pod2man|pod2man> and L<pod2text|pod2text>,
+L<pod2html|pod2html> and L<pod2latex|pod2latex>, L<pod2usage|pod2usage>,
+L<podselect|podselect>, L<podchecker|podchecker>, L<splain|splain>,
+L<roffitall|roffitall>
+
+=item CONVERTORS
+
+L<a2p|a2p>, L<s2p|s2p>, L<find2perl|find2perl>
+
+=item Administration
+
+L<libnetcfg|libnetcfg>
+
+=item Development
+
+L<perlbug|perlbug>, L<h2ph|h2ph>, L<c2ph|c2ph> and L<pstruct|pstruct>,
+L<h2xs|h2xs>, L<dprofpp|dprofpp>, L<perlcc|perlcc>
+
+=item SEE ALSO
+
+=back
 
 =back
@@ -3786,4 +3969,40 @@
 =back
 
+=head2 perlfilter - Source Filters
+
+=over 4
+
+=item DESCRIPTION
+
+=item CONCEPTS
+
+=item USING FILTERS
+
+=item WRITING A SOURCE FILTER
+
+=item WRITING A SOURCE FILTER IN C
+
+B<Decryption Filters>
+
+=item CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE
+
+=item WRITING A SOURCE FILTER IN PERL
+
+=item USING CONTEXT: THE DEBUG FILTER
+
+=item CONCLUSION
+
+=item THINGS TO LOOK OUT FOR
+
+Some Filters Clobber the C<DATA> Handle
+
+=item REQUIREMENTS
+
+=item AUTHOR
+
+=item Copyrights
+
+=back
+
 =head2 perlembed - how to embed perl in your C program
 
@@ -3825,4 +4044,6 @@
 
 =item Embedding Perl under Win32
+
+=item Hiding Perl_
 
 =item MORAL
@@ -4057,4 +4278,6 @@
 =item The OVERLOAD: Keyword
 
+=item The FALLBACK: Keyword
+
 =item The INTERFACE: Keyword
 
@@ -4148,4 +4371,6 @@
 
 =item Hash API Extensions
+
+=item AVs, HVs and undefined values
 
 =item References
@@ -4248,5 +4473,5 @@
 =item Internal Functions
 
-A, p, d, s, n, r, f, M, o, j, x
+A, p, d, s, n, r, f, M, o, x, m, X, E, b
 
 =over 4
@@ -4266,11 +4491,11 @@
 =item What B<is> Unicode, anyway?
 
-=item How can I recognise a UTF8 string?
-
-=item How does UTF8 represent Unicode characters?
-
-=item How does Perl store UTF8 strings?
-
-=item How do I convert a string to UTF8?
+=item How can I recognise a UTF-8 string?
+
+=item How does UTF-8 represent Unicode characters?
+
+=item How does Perl store UTF-8 strings?
+
+=item How do I convert a string to UTF-8?
 
 =item Is there anything else I need to know?
@@ -4372,97 +4597,4 @@
 =back
 
-=head2 perlutil - utilities packaged with the Perl distribution
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item DOCUMENTATION
-
-L<perldoc|perldoc>, L<pod2man|pod2man> and L<pod2text|pod2text>,
-L<pod2html|pod2html> and L<pod2latex|pod2latex>, L<pod2usage|pod2usage>,
-L<podselect|podselect>, L<podchecker|podchecker>, L<splain|splain>,
-L<roffitall|roffitall>
-
-=item CONVERTORS
-
-L<a2p|a2p>, L<s2p|s2p>, L<find2perl|find2perl>
-
-=item Administration
-
-L<libnetcfg|libnetcfg>
-
-=item Development
-
-L<perlbug|perlbug>, L<h2ph|h2ph>, L<c2ph|c2ph> and L<pstruct|pstruct>,
-L<h2xs|h2xs>, L<dprofpp|dprofpp>, L<perlcc|perlcc>
-
-=item SEE ALSO
-
-=back
-
-=back
-
-=head2 perlfilter - Source Filters
-
-=over 4
-
-=item DESCRIPTION
-
-=item CONCEPTS
-
-=item USING FILTERS
-
-=item WRITING A SOURCE FILTER
-
-=item WRITING A SOURCE FILTER IN C
-
-B<Decryption Filters>
-
-=item CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE
-
-=item WRITING A SOURCE FILTER IN PERL
-
-=item USING CONTEXT: THE DEBUG FILTER
-
-=item CONCLUSION
-
-=item REQUIREMENTS
-
-=item AUTHOR
-
-=item Copyrights
-
-=back
-
-=head2 perldbmfilter - Perl DBM Filters
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-B<filter_store_key>, B<filter_store_value>, B<filter_fetch_key>,
-B<filter_fetch_value>
-
-=over 4
-
-=item The Filter
-
-=item An Example -- the NULL termination problem.
-
-=item Another Example -- Key is a C int.
-
-=back
-
-=item SEE ALSO
-
-=item AUTHOR
-
-=back
-
 =head2 perlapi - autogenerated documentation for the perl public API
 
@@ -4500,10 +4632,10 @@
 =item Embedding Functions
 
-load_module, nothreadhook, perl_alloc, perl_construct, perl_destruct,
-perl_free, perl_parse, perl_run, require_pv
+cv_undef, load_module, nothreadhook, perl_alloc, perl_construct,
+perl_destruct, perl_free, perl_parse, perl_run, require_pv
 
 =item Functions in file pp_pack.c
 
-pack_cat, unpack_str
+packlist, pack_cat, unpackstring, unpack_str
 
 =item Global Variables
@@ -4523,8 +4655,8 @@
 
 get_hv, HeHASH, HeKEY, HeKLEN, HePV, HeSVKEY, HeSVKEY_force, HeSVKEY_set,
-HeVAL, HvNAME, hv_clear, hv_delete, hv_delete_ent, hv_exists,
-hv_exists_ent, hv_fetch, hv_fetch_ent, hv_iterinit, hv_iterkey,
+HeVAL, HvNAME, hv_clear, hv_clear_placeholders, hv_delete, hv_delete_ent,
+hv_exists, hv_exists_ent, hv_fetch, hv_fetch_ent, hv_iterinit, hv_iterkey,
 hv_iterkeysv, hv_iternext, hv_iternextsv, hv_iternext_flags, hv_iterval,
-hv_magic, hv_store, hv_store_ent, hv_undef, newHV, Nullhv
+hv_magic, hv_scalar, hv_store, hv_store_ent, hv_undef, newHV, Nullhv
 
 =item Magical Functions
@@ -4542,5 +4674,5 @@
 
 fbm_compile, fbm_instr, form, getcwd_sv, strEQ, strGE, strGT, strLE, strLT,
-strNE, strnEQ, strnNE
+strNE, strnEQ, strnNE, sv_nolocking, sv_nosharing, sv_nounlocking
 
 =item Numeric functions
@@ -4552,4 +4684,8 @@
 
 cv_const_sv, newCONSTSUB, newXS
+
+=item Pad Data Structures
+
+pad_sv
 
 =item Stack Manipulation Macros
@@ -4559,5 +4695,6 @@
 PUTBACK, SP, SPAGAIN, XPUSHi, XPUSHn, XPUSHp, XPUSHs, XPUSHu, XSRETURN,
 XSRETURN_IV, XSRETURN_NO, XSRETURN_NV, XSRETURN_PV, XSRETURN_UNDEF,
-XSRETURN_YES, XST_mIV, XST_mNO, XST_mNV, XST_mPV, XST_mUNDEF, XST_mYES
+XSRETURN_UV, XSRETURN_YES, XST_mIV, XST_mNO, XST_mNV, XST_mPV, XST_mUNDEF,
+XST_mYES
 
 =item SV Flags
@@ -4569,43 +4706,44 @@
 get_sv, looks_like_number, newRV_inc, newRV_noinc, newSV, newSViv, newSVnv,
 newSVpv, newSVpvf, newSVpvn, newSVpvn_share, newSVrv, newSVsv, newSVuv,
-new_vstring, SvCUR, SvCUR_set, SvEND, SvGROW, SvIOK, SvIOKp, SvIOK_notUV,
-SvIOK_off, SvIOK_on, SvIOK_only, SvIOK_only_UV, SvIOK_UV, SvIV, SvIVx,
-SvIVX, SvLEN, SvNIOK, SvNIOKp, SvNIOK_off, SvNOK, SvNOKp, SvNOK_off,
-SvNOK_on, SvNOK_only, SvNV, SvNVX, SvNVx, SvOK, SvOOK, SvPOK, SvPOKp,
-SvPOK_off, SvPOK_on, SvPOK_only, SvPOK_only_UTF8, SvPV, SvPVbyte,
-SvPVbytex, SvPVbytex_force, SvPVbyte_force, SvPVbyte_nolen, SvPVutf8,
-SvPVutf8x, SvPVutf8x_force, SvPVutf8_force, SvPVutf8_nolen, SvPVx, SvPVX,
-SvPV_force, SvPV_force_nomg, SvPV_nolen, SvREFCNT, SvREFCNT_dec,
-SvREFCNT_inc, SvROK, SvROK_off, SvROK_on, SvRV, SvSTASH, SvTAINT,
-SvTAINTED, SvTAINTED_off, SvTAINTED_on, SvTRUE, SvTYPE, SvUNLOCK, SvUOK,
-SvUPGRADE, SvUTF8, SvUTF8_off, SvUTF8_on, SvUV, SvUVX, SvUVx, sv_2bool,
-sv_2cv, sv_2io, sv_2iv, sv_2mortal, sv_2nv, sv_2pvbyte, sv_2pvbyte_nolen,
-sv_2pvutf8, sv_2pvutf8_nolen, sv_2pv_flags, sv_2pv_nolen, sv_2uv,
-sv_backoff, sv_bless, sv_catpv, sv_catpvf, sv_catpvf_mg, sv_catpvn,
-sv_catpvn_flags, sv_catpvn_mg, sv_catpv_mg, sv_catsv, sv_catsv_flags,
-sv_catsv_mg, sv_chop, sv_clear, sv_cmp, sv_cmp_locale, sv_collxfrm,
-sv_copypv, sv_dec, sv_derived_from, sv_eq, sv_force_normal,
-sv_force_normal_flags, sv_free, sv_gets, sv_grow, sv_inc, sv_insert,
-sv_isa, sv_isobject, sv_iv, sv_len, sv_len_utf8, sv_magic, sv_magicext,
-sv_mortalcopy, sv_newmortal, sv_newref, sv_nolocking, sv_nosharing,
-sv_nounlocking, sv_nv, sv_pos_b2u, sv_pos_u2b, sv_pv, sv_pvbyte,
-sv_pvbyten, sv_pvbyten_force, sv_pvn, sv_pvn_force, sv_pvn_force_flags,
-sv_pvutf8, sv_pvutf8n, sv_pvutf8n_force, sv_reftype, sv_replace,
-sv_report_used, sv_reset, sv_rvweaken, sv_setiv, sv_setiv_mg, sv_setnv,
-sv_setnv_mg, sv_setpv, sv_setpvf, sv_setpvf_mg, sv_setpvn, sv_setpvn_mg,
-sv_setpv_mg, sv_setref_iv, sv_setref_nv, sv_setref_pv, sv_setref_pvn,
-sv_setref_uv, sv_setsv, sv_setsv_flags, sv_setsv_mg, sv_setuv, sv_setuv_mg,
-sv_taint, sv_tainted, sv_true, sv_unmagic, sv_unref, sv_unref_flags,
-sv_untaint, sv_upgrade, sv_usepvn, sv_usepvn_mg, sv_utf8_decode,
-sv_utf8_downgrade, sv_utf8_encode, sv_utf8_upgrade, sv_utf8_upgrade_flags,
-sv_uv, sv_vcatpvfn, sv_vsetpvfn
+SvCUR, SvCUR_set, SvEND, SvGROW, SvIOK, SvIOKp, SvIOK_notUV, SvIOK_off,
+SvIOK_on, SvIOK_only, SvIOK_only_UV, SvIOK_UV, SvIsCOW,
+SvIsCOW_shared_hash, SvIV, SvIVx, SvIVX, SvLEN, SvNIOK, SvNIOKp,
+SvNIOK_off, SvNOK, SvNOKp, SvNOK_off, SvNOK_on, SvNOK_only, SvNV, SvNVX,
+SvNVx, SvOK, SvOOK, SvPOK, SvPOKp, SvPOK_off, SvPOK_on, SvPOK_only,
+SvPOK_only_UTF8, SvPV, SvPVbyte, SvPVbytex, SvPVbytex_force,
+SvPVbyte_force, SvPVbyte_nolen, SvPVutf8, SvPVutf8x, SvPVutf8x_force,
+SvPVutf8_force, SvPVutf8_nolen, SvPVx, SvPVX, SvPV_force, SvPV_force_nomg,
+SvPV_nolen, SvREFCNT, SvREFCNT_dec, SvREFCNT_inc, SvROK, SvROK_off,
+SvROK_on, SvRV, SvSTASH, SvTAINT, SvTAINTED, SvTAINTED_off, SvTAINTED_on,
+SvTRUE, SvTYPE, SvUNLOCK, SvUOK, SvUPGRADE, SvUTF8, SvUTF8_off, SvUTF8_on,
+SvUV, SvUVX, SvUVx, sv_2bool, sv_2cv, sv_2io, sv_2iv, sv_2mortal, sv_2nv,
+sv_2pvbyte, sv_2pvbyte_nolen, sv_2pvutf8, sv_2pvutf8_nolen, sv_2pv_flags,
+sv_2pv_nolen, sv_2uv, sv_backoff, sv_bless, sv_catpv, sv_catpvf,
+sv_catpvf_mg, sv_catpvn, sv_catpvn_flags, sv_catpvn_mg, sv_catpv_mg,
+sv_catsv, sv_catsv_flags, sv_catsv_mg, sv_chop, sv_clear, sv_cmp,
+sv_cmp_locale, sv_collxfrm, sv_copypv, sv_dec, sv_derived_from, sv_eq,
+sv_force_normal, sv_force_normal_flags, sv_free, sv_gets, sv_grow, sv_inc,
+sv_insert, sv_isa, sv_isobject, sv_iv, sv_len, sv_len_utf8, sv_magic,
+sv_magicext, sv_mortalcopy, sv_newmortal, sv_newref, sv_nv, sv_pos_b2u,
+sv_pos_u2b, sv_pv, sv_pvbyte, sv_pvbyten, sv_pvbyten_force, sv_pvn,
+sv_pvn_force, sv_pvn_force_flags, sv_pvutf8, sv_pvutf8n, sv_pvutf8n_force,
+sv_reftype, sv_replace, sv_report_used, sv_reset, sv_rvweaken, sv_setiv,
+sv_setiv_mg, sv_setnv, sv_setnv_mg, sv_setpv, sv_setpvf, sv_setpvf_mg,
+sv_setpviv, sv_setpviv_mg, sv_setpvn, sv_setpvn_mg, sv_setpv_mg,
+sv_setref_iv, sv_setref_nv, sv_setref_pv, sv_setref_pvn, sv_setref_uv,
+sv_setsv, sv_setsv_flags, sv_setsv_mg, sv_setuv, sv_setuv_mg, sv_taint,
+sv_tainted, sv_true, sv_unmagic, sv_unref, sv_unref_flags, sv_untaint,
+sv_upgrade, sv_usepvn, sv_usepvn_mg, sv_utf8_decode, sv_utf8_downgrade,
+sv_utf8_encode, sv_utf8_upgrade, sv_utf8_upgrade_flags, sv_uv, sv_vcatpvfn,
+sv_vsetpvfn
 
 =item Unicode Support
 
 bytes_from_utf8, bytes_to_utf8, ibcmp_utf8, is_utf8_char, is_utf8_string,
-pv_uni_display, sv_recode_to_utf8, sv_uni_display, to_utf8_case,
-to_utf8_fold, to_utf8_lower, to_utf8_title, to_utf8_upper, utf8n_to_uvchr,
-utf8n_to_uvuni, utf8_distance, utf8_hop, utf8_length, utf8_to_bytes,
-utf8_to_uvchr, utf8_to_uvuni, uvchr_to_utf8, uvuni_to_utf8_flags
+is_utf8_string_loc, pv_uni_display, sv_cat_decode, sv_recode_to_utf8,
+sv_uni_display, to_utf8_case, to_utf8_fold, to_utf8_lower, to_utf8_title,
+to_utf8_upper, utf8n_to_uvchr, utf8n_to_uvuni, utf8_distance, utf8_hop,
+utf8_length, utf8_to_bytes, utf8_to_uvchr, utf8_to_uvuni, uvchr_to_utf8,
+uvuni_to_utf8_flags
 
 =item Variables created by C<xsubpp> and C<xsubpp> internal functions
@@ -4631,4 +4769,20 @@
 =item DESCRIPTION
 
+=item CV reference counts and CvOUTSIDE
+
+CvWEAKOUTSIDE
+
+=item Functions in file pad.h
+
+CX_CURPAD_SAVE, CX_CURPAD_SV, PAD_BASE_SV, PAD_CLONE_VARS,
+PAD_COMPNAME_FLAGS, PAD_COMPNAME_GEN, PAD_COMPNAME_OURSTASH,
+PAD_COMPNAME_PV, PAD_COMPNAME_TYPE, PAD_DUP, PAD_RESTORE_LOCAL,
+PAD_SAVE_LOCAL, PAD_SAVE_SETNULLPAD, PAD_SETSV, PAD_SET_CUR,
+PAD_SET_CUR_NOSAVE, PAD_SV, PAD_SVl, SAVECLEARSV, SAVECOMPPAD, SAVEPADSV
+
+=item Functions in file pp_ctl.c
+
+find_runcv
+
 =item Global Variables
 
@@ -4646,5 +4800,8 @@
 =item Pad Data Structures
 
-CvPADLIST
+CvPADLIST, cv_clone, cv_dump, do_dump_pad, intro_my, pad_add_anon,
+pad_add_name, pad_alloc, pad_block_start, pad_check_dup, pad_findlex,
+pad_findmy, pad_fixup_inner_anons, pad_free, pad_leavemy, pad_new,
+pad_push, pad_reset, pad_setsv, pad_swipe, pad_tidy, pad_undef
 
 =item Stack Manipulation Macros
@@ -4673,4 +4830,6 @@
 
 =item History and Background
+
+=item Basic Structure
 
 =item Layers vs Disciplines
@@ -4698,4 +4857,10 @@
 Error,	Clearerr, Setlinebuf, Get_base, Get_bufsiz, Get_ptr, Get_cnt,
 Set_ptrcnt
+
+=item Utilities
+
+=item Implementing PerlIO Layers
+
+C implementations, Perl implementations
 
 =item Core Layers
@@ -4756,360 +4921,4 @@
 =back
 
-=head2 perltodo - Perl TO-DO List
-
-=over 4
-
-=item DESCRIPTION
-
-=item To do during 5.6.x
-
-=over 4
-
-=item Support for I/O disciplines
-
-=item Autoload bytes.pm
-
-=item Make "\u{XXXX}" et al work
-
-=item Create a char *sv_pvprintify(sv, STRLEN *lenp, UV flags)
-
-=item Overloadable regex assertions
-
-=item Unicode
-
-=item Work out exit/die semantics for threads
-
-=item Better support for nonpreemptive threading systems like GNU pth
-
-=item Typed lexicals for compiler
-
-=item Compiler workarounds for Win32
-
-=item AUTOLOADing in the compiler
-
-=item Fixing comppadlist when compiling
-
-=item Cleaning up exported namespace
-
-=item Complete signal handling
-
-=item Out-of-source builds
-
-=item POSIX realtime support
-
-=item UNIX98 support
-
-=item IPv6 Support
-
-=item Long double conversion
-
-=item Locales
-
-=item Arithmetic on non-Arabic numerals
-
-=item POSIX Unicode character classes
-
-=item Factoring out common suffices/prefices in regexps (trie optimization)
-
-=item Security audit shipped utilities
-
-=item Sort out the uid-setting mess
-
-=item Custom opcodes
-
-=item DLL Versioning
-
-=item Introduce @( and @)
-
-=item Floating point handling
-
-=item IV/UV preservation
-
-=item Replace pod2html with something using Pod::Parser
-
-=item Automate module testing on CPAN
-
-=item sendmsg and recvmsg
-
-=item Rewrite perlre documentation
-
-=item Convert example code to IO::Handle filehandles
-
-=item Document Win32 choices
-
-=item Check new modules
-
-=item Make roffitall find pods and libs itself
-
-=back
-
-=item To do at some point
-
-=over 4
-
-=item Remove regular expression recursion
-
-=item Memory leaks after failed eval
-
-=item bitfields in pack
-
-=item Cross compilation
-
-=item Perl preprocessor / macros
-
-=item Perl lexer in Perl
-
-=item Using POSIX calls internally
-
-=item -i rename file when changed
-
-=item All ARGV input should act like E<lt>E<gt>
-
-=item Support for rerunning debugger
-
-=item Test Suite for the Debugger
-
-=item my sub foo { }
-
-=item One-pass global destruction
-
-=item Rewrite regexp parser
-
-=item Cache recently used regexps
-
-=item Cross-compilation support
-
-=item Bit-shifting bitvectors
-
-=item debugger pragma
-
-=item use less pragma
-
-=item switch structures
-
-=item Cache eval tree
-
-=item rcatmaybe
-
-=item Shrink opcode tables
-
-=item Optimize away @_
-
-=item Prototypes versus indirect objects
-
-=item Install HTML
-
-=item Prototype method calls
-
-=item Return context prototype declarations
-
-=item magic_setisa
-
-=item Garbage collection
-
-=item IO tutorial
-
-=item Rewrite perldoc
-
-=item Install .3p manpages
-
-=item Unicode tutorial
-
-=item Update POSIX.pm for 1003.1-2
-
-=item Retargetable installation
-
-=item POSIX emulation on non-POSIX systems
-
-=item Rename Win32 headers
-
-=item Finish off lvalue functions
-
-=item Update sprintf documentation
-
-=item Use fchown/fchmod internally
-
-=item Make v-strings overloaded objects
-
-=item Allow restricted hash assignment
-
-=item Should overload be inheritable?
-
-=item Taint rethink
-
-=back
-
-=item Vague ideas
-
-=over 4
-
-=item ref() in list context
-
-=item Make tr/// return histogram of characters in list context
-
-=item Compile to real threaded code
-
-=item Structured types
-
-=item Modifiable $1 et al.
-
-=item Procedural interfaces for IO::*, etc.
-
-=item RPC modules
-
-=item Attach/detach debugger from running program
-
-=item GUI::Native
-
-=item foreach(reverse ...)
-
-=item Constant function cache
-
-=item Approximate regular expression matching
-
-=back
-
-=item Ongoing
-
-=over 4
-
-=item Update guts documentation
-
-=item Add more tests
-
-=item Update auxiliary tools
-
-=item Create debugging macros
-
-=item truncate to the people
-
-=item Unicode in Filenames
-
-=back
-
-=item Recently done things
-
-=over 4
-
-=item Alternative RE syntax module
-
-=item Safe signal handling
-
-=item Tie Modules
-
-=item gettimeofday
-
-=item setitimer and getimiter
-
-=item Testing __DIE__ hook
-
-=item CPP equivalent in Perl
-
-=item Explicit switch statements
-
-=item autocroak
-
-=item UTF/EBCDIC
-
-=item UTF Regexes
-
-=item perlcc to produce executable
-
-=item END blocks saved in compiled output
-
-=item Secure temporary file module
-
-=item Integrate Time::HiRes
-
-=item Turn Cwd into XS
-
-=item Mmap for input
-
-=item Byte to/from UTF8 and UTF8 to/from local conversion
-
-=item Add sockatmark support
-
-=item Mailing list archives
-
-=item Bug tracking
-
-=item Integrate MacPerl
-
-=item Web "nerve center" for Perl
-
-=item Regular expression tutorial
-
-=item Debugging Tutorial
-
-=item Integrate new modules
-
-=item Integrate profiler
-
-=item Y2K error detection
-
-=item Regular expression debugger
-
-=item POD checker
-
-=item "Dynamic" lexicals
-
-=item Cache precompiled modules
-
-=back
-
-=item Deprecated Wishes
-
-=over 4
-
-=item Loop control on do{}
-
-=item Lexically scoped typeglobs
-
-=item format BOTTOM
-
-=item report HANDLE
-
-=item Generalised want()/caller())
-
-=item Named prototypes
-
-=item Built-in globbing
-
-=item Regression tests for suidperl
-
-=item Cached hash values
-
-=item Add compression modules
-
-=item Reorganise documentation into tutorials/references
-
-=item Remove distinction between functions and operators
-
-=item Make XS easier to use
-
-=item Make embedding easier to use
-
-=item man for perl
-
-=item my $Package::variable
-
-=item "or" tests defined, not truth
-
-=item "class"-based lexicals
-
-=item byteperl
-
-=item Lazy evaluation / tail recursion removal
-
-=item Make "use utf8" the default
-
-=item Unicode collation and normalization
-
-=item pack/unpack tutorial
-
-=back
-
-=back
-
 =head2 perlhack - How to hack at the Perl internals
 
@@ -5142,8 +4951,5 @@
 point, Finding how to fix a bug, Finding the source of misbehaviour
 
-=item Perlbug remote interface
-
-1 http://bugs.perl.org, 2 bugdb@perl.org, 3
-commands_and_bugdids@bugs.perl.org, notes, patches, tests
+=item Perlbug administration
 
 =item Submitting patches
@@ -5170,4 +4976,6 @@
 =item Millions of Macros
 
+=item The .i Targets
+
 =item Poking at Perl
 
@@ -5177,4 +4985,6 @@
 finish, 'enter', print
 
+=item gdb macro support
+
 =item Dumping Perl Data Structures
 
@@ -5188,10 +4998,17 @@
 
 F<t/base/>, F<t/cmd/>, F<t/comp/>, F<t/io/>, F<t/lib/>, F<t/op/>,
-F<t/pod/>, F<t/run/>, t/base t/comp, t/cmd t/run t/io t/op, t/lib ext lib
+F<t/pod/>, F<t/run/>, F<t/uni/>, F<t/win32/>, F<t/x2p>, t/base t/comp,
+t/cmd t/run t/io t/op, t/lib ext lib
 
 =item Special Make Test Targets
 
-coretest, test.deparse, minitest, test.third check.third utest.third
-ucheck.third, test.torture torturetest, utest ucheck test.utf8 check.utf8
+coretest, test.deparse, test.taintwarn, minitest, test.valgrind
+check.valgrind utest.valgrind ucheck.valgrind, test.third check.third
+utest.third ucheck.third, test.torture torturetest, utest ucheck test.utf8
+check.utf8, test_harness
+
+=item Running tests by hand
+
+PERL_CORE=1, PERL_DESTRUCT_LEVEL=2, PERL, PERL_SKIP_TTY_TEST
 
 =back
@@ -5210,4 +5027,6 @@
 
 DEFINES, USE_MULTI = define, #PERL_MALLOC = define, CFG = Debug
+
+=item valgrind
 
 =item Compaq's/Digital's/HP's Third Degree
@@ -5240,4 +5059,398 @@
 =back
 
+=head2 perlbook - Perl book information
+
+=over 4
+
+=item DESCRIPTION
+
+=back
+
+=head2 perltodo - Perl TO-DO List
+
+=over 4
+
+=item DESCRIPTION
+
+=item To do during 5.6.x
+
+=over 4
+
+=item Support for I/O disciplines
+
+=item Autoload bytes.pm
+
+=item Make "\u{XXXX}" et al work
+
+=item Create a char *sv_pvprintify(sv, STRLEN *lenp, UV flags)
+
+=item Overloadable regex assertions
+
+=item Unicode
+
+=item Work out exit/die semantics for threads
+
+=item Better support for nonpreemptive threading systems like GNU pth
+
+=item Typed lexicals for compiler
+
+=item Compiler workarounds for Win32
+
+=item AUTOLOADing in the compiler
+
+=item Fixing comppadlist when compiling
+
+=item Cleaning up exported namespace
+
+=item Complete signal handling
+
+=item Out-of-source builds
+
+=item POSIX realtime support
+
+=item UNIX98 support
+
+=item IPv6 Support
+
+=item Long double conversion
+
+=item Locales
+
+=item Arithmetic on non-Arabic numerals
+
+=item POSIX Unicode character classes
+
+=item Factoring out common suffices/prefices in regexps (trie optimization)
+
+=item Security audit shipped utilities
+
+=item Sort out the uid-setting mess
+
+=item Custom opcodes
+
+=item DLL Versioning
+
+=item Introduce @( and @)
+
+=item Floating point handling
+
+=item IV/UV preservation
+
+=item Replace pod2html with something using Pod::Parser
+
+=item Automate module testing on CPAN
+
+=item sendmsg and recvmsg
+
+=item Rewrite perlre documentation
+
+=item Convert example code to IO::Handle filehandles
+
+=item Document Win32 choices
+
+=item Check new modules
+
+=item Make roffitall find pods and libs itself
+
+=back
+
+=item To do at some point
+
+=over 4
+
+=item Remove regular expression recursion
+
+=item Memory leaks after failed eval
+
+=item bitfields in pack
+
+=item Cross compilation
+
+=item Perl preprocessor / macros
+
+=item Perl lexer in Perl
+
+=item Using POSIX calls internally
+
+=item -i rename file when changed
+
+=item All ARGV input should act like E<lt>E<gt>
+
+=item Support for rerunning debugger
+
+=item Test Suite for the Debugger
+
+=item my sub foo { }
+
+=item One-pass global destruction
+
+=item Rewrite regexp parser
+
+=item Cache recently used regexps
+
+=item Cross-compilation support
+
+=item Bit-shifting bitvectors
+
+=item debugger pragma
+
+=item use less pragma
+
+=item switch structures
+
+=item Cache eval tree
+
+=item rcatmaybe
+
+=item Shrink opcode tables
+
+=item Optimize away @_
+
+=item Prototypes versus indirect objects
+
+=item Install HTML
+
+=item Prototype method calls
+
+=item Return context prototype declarations
+
+=item magic_setisa
+
+=item Garbage collection
+
+=item IO tutorial
+
+=item Rewrite perldoc
+
+=item Install .3p manpages
+
+=item Unicode tutorial
+
+=item Update POSIX.pm for 1003.1-2
+
+=item Retargetable installation
+
+=item POSIX emulation on non-POSIX systems
+
+=item Rename Win32 headers
+
+=item Finish off lvalue functions
+
+=item Update sprintf documentation
+
+=item Use fchown/fchmod internally
+
+=item Make v-strings overloaded objects
+
+=item Allow restricted hash assignment
+
+=item Should overload be inheritable?
+
+=item Taint rethink
+
+=item Perform correctly when XSUBs call subroutines that exit via
+goto(LABEL) and friends
+
+=back
+
+=item Vague ideas
+
+=over 4
+
+=item ref() in list context
+
+=item Make tr/// return histogram of characters in list context
+
+=item Compile to real threaded code
+
+=item Structured types
+
+=item Modifiable $1 et al.
+
+=item Procedural interfaces for IO::*, etc.
+
+=item RPC modules
+
+=item Attach/detach debugger from running program
+
+=item GUI::Native
+
+=item foreach(reverse ...)
+
+=item Constant function cache
+
+=item Approximate regular expression matching
+
+=back
+
+=item Ongoing
+
+=over 4
+
+=item Update guts documentation
+
+=item Add more tests
+
+=item Update auxiliary tools
+
+=item Create debugging macros
+
+=item truncate to the people
+
+=item Unicode in Filenames
+
+=back
+
+=item Unicode in %ENV
+
+=item Recently done things
+
+=over 4
+
+=item Alternative RE syntax module
+
+=item Safe signal handling
+
+=item Tie Modules
+
+=item gettimeofday
+
+=item setitimer and getimiter
+
+=item Testing __DIE__ hook
+
+=item CPP equivalent in Perl
+
+=item Explicit switch statements
+
+=item autocroak
+
+=item UTF/EBCDIC
+
+=item UTF Regexes
+
+=item perlcc to produce executable
+
+=item END blocks saved in compiled output
+
+=item Secure temporary file module
+
+=item Integrate Time::HiRes
+
+=item Turn Cwd into XS
+
+=item Mmap for input
+
+=item Byte to/from UTF-8 and UTF-8 to/from local conversion
+
+=item Add sockatmark support
+
+=item Mailing list archives
+
+=item Bug tracking
+
+=item Integrate MacPerl
+
+=item Web "nerve center" for Perl
+
+=item Regular expression tutorial
+
+=item Debugging Tutorial
+
+=item Integrate new modules
+
+=item Integrate profiler
+
+=item Y2K error detection
+
+=item Regular expression debugger
+
+=item POD checker
+
+=item "Dynamic" lexicals
+
+=item Cache precompiled modules
+
+=back
+
+=item Deprecated Wishes
+
+=over 4
+
+=item Loop control on do{}
+
+=item Lexically scoped typeglobs
+
+=item format BOTTOM
+
+=item report HANDLE
+
+=item Generalised want()/caller())
+
+=item Named prototypes
+
+=item Built-in globbing
+
+=item Regression tests for suidperl
+
+=item Cached hash values
+
+=item Add compression modules
+
+=item Reorganise documentation into tutorials/references
+
+=item Remove distinction between functions and operators
+
+=item Make XS easier to use
+
+=item Make embedding easier to use
+
+=item man for perl
+
+=item my $Package::variable
+
+=item "or" tests defined, not truth
+
+=item "class"-based lexicals
+
+=item byteperl
+
+=item Lazy evaluation / tail recursion removal
+
+=item Make "use utf8" the default
+
+=item Unicode collation and normalization
+
+=item pack/unpack tutorial
+
+=back
+
+=back
+
+=head2 perldoc - Look up Perl documentation in Pod format.
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item OPTIONS
+
+B<-h>, B<-v>, B<-t>, B<-u>, B<-m> I<module>, B<-l>, B<-F>, B<-f>
+I<perlfunc>, B<-q> I<perlfaq-search-regexp>, B<-T>, B<-d>
+I<destination-filename>, B<-o> I<output-formatname>, B<-M> I<module-name>,
+B<-w> I<option:value> or B<-w> I<option>, B<-X>,
+B<PageName|ModuleName|ProgramName>, B<-n> I<some-formatter>, B<-r>, B<-i>,
+B<-V>
+
+=item SECURITY
+
+=item ENVIRONMENT
+
+=item AUTHOR
+
+=back
+
 =head2 perlhist - the Perl history records
 
@@ -5270,5 +5483,296 @@
 =back
 
-=head2 perldelta - what is new for perl v5.8.0
+=head2 perldelta - what is new for perl v5.8.3
+
+=over 4
+
+=item DESCRIPTION
+
+=item Incompatible Changes
+
+=item Core Enhancements
+
+=item Modules and Pragmata
+
+CGI, Cwd, Digest, Digest::MD5, Encode, File::Spec, FindBin, List::Util,
+Math::BigInt, PodParser, Pod::Perldoc, POSIX, Unicode::Collate,
+Unicode::Normalize, Test::Harness, threads::shared
+
+=item Utility Changes
+
+=item New Documentation
+
+=item Installation and Configuration Improvements
+
+=item Selected Bug Fixes
+
+=item New or Changed Diagnostics
+
+=item Changed Internals
+
+=item Configuration and Building
+
+=item Platform Specific Problems
+
+=item Known Problems
+
+=item Future Directions
+
+=item Obituary
+
+=item Reporting Bugs
+
+=item SEE ALSO
+
+=back
+
+=head2 perl583delta, perldelta - what is new for perl v5.8.3
+
+=over 4
+
+=item DESCRIPTION
+
+=item Incompatible Changes
+
+=item Core Enhancements
+
+=item Modules and Pragmata
+
+CGI, Cwd, Digest, Digest::MD5, Encode, File::Spec, FindBin, List::Util,
+Math::BigInt, PodParser, Pod::Perldoc, POSIX, Unicode::Collate,
+Unicode::Normalize, Test::Harness, threads::shared
+
+=item Utility Changes
+
+=item New Documentation
+
+=item Installation and Configuration Improvements
+
+=item Selected Bug Fixes
+
+=item New or Changed Diagnostics
+
+=item Changed Internals
+
+=item Configuration and Building
+
+=item Platform Specific Problems
+
+=item Known Problems
+
+=item Future Directions
+
+=item Obituary
+
+=item Reporting Bugs
+
+=item SEE ALSO
+
+=back
+
+=head2 perl582delta - what is new for perl v5.8.2
+
+=over 4
+
+=item DESCRIPTION
+
+=item Incompatible Changes
+
+=item Core Enhancements
+
+=over 4
+
+=item Hash Randomisation
+
+=item Threading
+
+=back
+
+=item Modules and Pragmata
+
+=over 4
+
+=item Updated Modules And Pragmata
+
+Devel::PPPort, Digest::MD5, I18N::LangTags, libnet, MIME::Base64,
+Pod::Perldoc, strict, Tie::Hash, Time::HiRes, Unicode::Collate,
+Unicode::Normalize, UNIVERSAL
+
+=back
+
+=item Selected Bug Fixes
+
+=item Changed Internals
+
+=item Platform Specific Problems
+
+=item Future Directions
+
+=item Reporting Bugs
+
+=item SEE ALSO
+
+=back
+
+=head2 perl581delta - what is new for perl v5.8.1
+
+=over 4
+
+=item DESCRIPTION
+
+=item Incompatible Changes
+
+=over 4
+
+=item Hash Randomisation
+
+=item UTF-8 On Filehandles No Longer Activated By Locale
+
+=item Single-number v-strings are no longer v-strings before "=>"
+
+=item (Win32) The -C Switch Has Been Repurposed
+
+=item (Win32) The /d Switch Of cmd.exe
+
+=back
+
+=item Core Enhancements
+
+=over 4
+
+=item UTF-8 no longer default under UTF-8 locales
+
+=item Unsafe signals again available
+
+=item Tied Arrays with Negative Array Indices
+
+=item local ${$x}
+
+=item Unicode Character Database 4.0.0
+
+=item Deprecation Warnings
+
+=item Miscellaneous Enhancements
+
+=back
+
+=item Modules and Pragmata
+
+=over 4
+
+=item Updated Modules And Pragmata
+
+base, B::Bytecode, B::Concise, B::Deparse, Benchmark, ByteLoader, bytes,
+CGI, charnames, CPAN, Data::Dumper, DB_File, Devel::PPPort, Digest::MD5,
+Encode, fields, libnet, Math::BigInt, MIME::Base64, NEXT, Net::Ping,
+PerlIO::scalar, podlators, Pod::LaTeX, PodParsers, Pod::Perldoc,
+Scalar::Util, Storable, strict, Term::ANSIcolor, Test::Harness, Test::More,
+Test::Simple, Text::Balanced, Time::HiRes, threads, threads::shared,
+Unicode::Collate, Unicode::Normalize, Win32::GetFolderPath,
+Win32::GetOSVersion
+
+=back
+
+=item Utility Changes
+
+=item New Documentation
+
+=item Installation and Configuration Improvements
+
+=over 4
+
+=item Platform-specific enhancements
+
+=back
+
+=item Selected Bug Fixes
+
+=over 4
+
+=item Closures, eval and lexicals
+
+=item Generic fixes
+
+=item Platform-specific fixes
+
+=back
+
+=item New or Changed Diagnostics
+
+=over 4
+
+=item Changed "A thread exited while %d threads were running"
+
+=item Removed "Attempt to clear a restricted hash"
+
+=item New "Illegal declaration of anonymous subroutine"
+
+=item Changed "Invalid range "%s" in transliteration operator"
+
+=item New "Missing control char name in \c"
+
+=item New "Newline in left-justified string for %s"
+
+=item New "Possible precedence problem on bitwise %c operator"
+
+=item New "Pseudo-hashes are deprecated"
+
+=item New "read() on %s filehandle %s"
+
+=item New "5.005 threads are deprecated"
+
+=item New "Tied variable freed while still in use"
+
+=item New "To%s: illegal mapping '%s'"
+
+=item New "Use of freed value in iteration"
+
+=back
+
+=item Changed Internals
+
+=item New Tests
+
+=item Known Problems
+
+=over 4
+
+=item Tied hashes in scalar context
+
+=item Net::Ping 450_service and 510_ping_udp failures
+
+=item B::C
+
+=back
+
+=item Platform Specific Problems
+
+=over 4
+
+=item EBCDIC Platforms
+
+=item Cygwin 1.5 problems
+
+=item HP-UX: HP cc warnings about sendfile and sendpath
+
+=item IRIX: t/uni/tr_7jis.t falsely failing
+
+=item Mac OS X: no usemymalloc
+
+=item Tru64: No threaded builds with GNU cc (gcc)
+
+=item Win32: sysopen, sysread, syswrite
+
+=back
+
+=item Future Directions
+
+=item Reporting Bugs
+
+=item SEE ALSO
+
+=back
+
+=head2 perl58delta - what is new for perl v5.8.0
 
 =over 4
@@ -5446,4 +5950,6 @@
 =item op/sprintf tests 91, 129, and 130
 
+=item SCO
+
 =item Solaris 2.5
 
@@ -5473,4 +5979,20 @@
 
 =back
+
+=item Reporting Bugs
+
+=item SEE ALSO
+
+=item HISTORY
+
+=back
+
+=head2 perl573delta - what's new for perl v5.7.3
+
+=over 4
+
+=item DESCRIPTION
+
+=item Changes
 
 =item Reporting Bugs
@@ -6997,4 +7519,47 @@
 =back
 
+=head2 perlartistic - the Perl Artistic License
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item The "Artistic License"
+
+=over 4
+
+=item Preamble
+
+=item Definitions
+
+"Package", "Standard Version", "Copyright Holder", "You", "Reasonable
+copying fee", "Freely Available"
+
+=item Conditions
+
+a), b), c), d), a), b), c), d)
+
+=back
+
+=back
+
+=head2 perlgpl - the GNU General Public License, version 2
+
+=over 4
+
+=item SYNOPSIS
+
+=back
+
+=over 4
+
+=item DESCRIPTION
+
+=item GNU GENERAL PUBLIC LICENSE
+
+=back
+
 =head2 perlaix, README.aix - Perl version 5 on IBM Unix (AIX) systems
 
@@ -7013,4 +7578,6 @@
 =item The IBM ANSI C Compiler
 
+=item The usenm option
+
 =item Using GNU's gcc for building perl
 
@@ -7031,4 +7598,70 @@
 =back
 
+=head2 perlamiga - Perl under Amiga OS
+
+=over 4
+
+=item NOTE
+
+=item SYNOPSIS
+
+=back
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item Prerequisites for Compiling Perl on AmigaOS
+
+B<Unix emulation for AmigaOS: ixemul.library>, B<Version of Amiga OS>
+
+=item Starting Perl programs under AmigaOS
+
+=item Shortcomings of Perl under AmigaOS
+
+=back
+
+=item INSTALLATION
+
+=item Accessing documentation
+
+=over 4
+
+=item Manpages for Perl on AmigaOS
+
+=item Perl HTML Documentation on AmigaOS
+
+=item Perl GNU Info Files on AmigaOS
+
+=item Perl LaTeX Documentation on AmigaOS
+
+=back
+
+=item BUILDING PERL ON AMIGAOS
+
+=over 4
+
+=item Build Prerequisites for Perl on AmigaOS
+
+=item Getting the Perl Source for AmigaOS
+
+=item Making Perl on AmigaOS
+
+=item Testing Perl on AmigaOS
+
+=item Installing the built Perl on AmigaOS
+
+=back
+
+=item PERL 5.8.0 BROKEN IN AMIGAOS
+
+=item AUTHORS
+
+=item SEE ALSO
+
+=back
+
 =head2 perlapollo, README.apollo - Perl version 5 on Apollo DomainOS
 
@@ -7041,63 +7674,57 @@
 =back
 
-=head2 perlamiga - Perl under Amiga OS
-
-=over 4
-
-=item NOTE
-
-=item SYNOPSIS
-
-=back
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item Prerequisites for Compiling Perl on AmigaOS
-
-B<Unix emulation for AmigaOS: ixemul.library>, B<Version of Amiga OS>
-
-=item Starting Perl programs under AmigaOS
-
-=item Shortcomings of Perl under AmigaOS
-
-=back
-
-=item INSTALLATION
-
-=item Accessing documentation
-
-=over 4
-
-=item Manpages for Perl on AmigaOS
-
-=item Perl HTML Documentation on AmigaOS
-
-=item Perl GNU Info Files on AmigaOS
-
-=item Perl LaTeX Documentation on AmigaOS
-
-=back
-
-=item BUILDING PERL ON AMIGAOS
-
-=over 4
-
-=item Build Prerequisites for Perl on AmigaOS
-
-=item Getting the Perl Source for AmigaOS
-
-=item Making Perl on AmigaOS
-
-=item Testing Perl on AmigaOS
-
-=item Installing the built Perl on AmigaOS
-
-=back
-
-=item PERL 5.8.0 BROKEN IN AMIGAOS
+=head2 perlbeos, README.beos - Perl version 5 on BeOS
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item General Issues with Perl on BeOS
+
+=item BeOS Release-specific Notes
+
+R4 x86, R4 PPC
+
+=item Contact Information
+
+=item Update 2002-05-30
+
+=back
+
+=back
+
+=head2 perlbs2000, README.BS2000 - building and installing Perl for BS2000.
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over 4
+
+=item gzip on BS2000
+
+=item bison on BS2000
+
+=item Unpacking Perl Distribution on BS2000
+
+=item Compiling Perl on BS2000
+
+=item Testing Perl on BS2000
+
+=item Installing Perl on BS2000
+
+=item Using Perl in the Posix-Shell of BS2000
+
+=item Using Perl in "native" BS2000
+
+=item Floating point anomalies on BS2000
+
+=item Using PerlIO and different encodings on ASCII and EBCDIC partitions
+
+=back
 
 =item AUTHORS
@@ -7105,91 +7732,39 @@
 =item SEE ALSO
 
-=back
-
-=head2 perlbeos, README.beos - Perl version 5 on BeOS
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item General Issues with Perl on BeOS
-
-=item BeOS Release-specific Notes
-
-R4 x86, R4 PPC
-
-=item Contact Information
-
-=item Update 2002-05-30
-
-=back
-
-=back
-
-=head2 perlbs2000, README.BS2000 - building and installing Perl for BS2000.
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=over 4
-
-=item gzip on BS2000
-
-=item bison on BS2000
-
-=item Unpacking Perl Distribution on BS2000
-
-=item Compiling Perl on BS2000
-
-=item Testing Perl on BS2000
-
-=item Installing Perl on BS2000
-
-=item Using Perl in the Posix-Shell of BS2000
-
-=item Using Perl in "native" BS2000
-
-=item Floating point anomalies on BS2000
-
-=back
+=over 4
+
+=item Mailing list
+
+=back
+
+=item HISTORY
+
+=back
+
+=head2 perlce - Perl for WinCE
+
+=over 4
+
+=item DESCRIPTION
+
+=item BUILD
+
+=over 4
+
+=item Tools & SDK
+
+Microsoft Embedded Visual Tools, Microsoft Visual C++, Rainer Keuchel's
+celib-sources, Rainer Keuchel's console-sources
+
+=item Make
+
+go to ./wince subdirectory, edit file compile.bat, run	  compile.bat, run 
+  compile.bat dist
+
+=back
+
+=item ACKNOWLEDGEMENTS
 
 =item AUTHORS
-
-=item SEE ALSO
-
-=over 4
-
-=item Mailing list
-
-=back
-
-=item HISTORY
-
-=back
-
-=over 4
-
-=item Name
-
-=item Description
-
-=item Build
-
-=over 4
-
-=item Tools & SDK
-
-=item Make
-
-=back
-
-=item Acknowledgements
-
-=item Author
 
 =back
@@ -7240,5 +7815,5 @@
 =over 4
 
-=item Warnings on Cygwin
+=item Errors on Cygwin
 
 =item ld2 on Cygwin
@@ -7252,9 +7827,11 @@
 =item File Permissions on Cygwin
 
-=item NDBM_File does not work on FAT filesystems
+=item NDBM_File and ODBM_File do not work on FAT filesystems
+
+=item C<fork()> failures in io_* tests
 
 =item Script Portability on Cygwin
 
-Pathnames, Text/Binary, F<.exe>, chown(), Miscellaneous
+Pathnames, Text/Binary, PerlIO, F<.exe>, C<chown()>, Miscellaneous
 
 =back
@@ -7414,4 +7991,6 @@
 =item Using perl as shipped with HP-UX
 
+=item Using perl from HP's porting centre
+
 =item Compiling Perl 5 on HP-UX
 
@@ -7497,4 +8076,6 @@
 
 =item Building with threads in Irix
+
+=item Irix 5.3
 
 =back
@@ -7543,4 +8124,38 @@
 =back
 
+=head2 perlmacosx, README.macosx - Perl under Mac OS X
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over 4
+
+=item Installation Prefix
+
+=item libperl and Prebinding
+
+=item Updating Panther
+
+=item Known problems
+
+=item MacPerl
+
+=item Carbon
+
+=item Cocoa
+
+=back
+
+=item Starting From Scratch
+
+=item AUTHOR
+
+=item DATE
+
+=back
+
 =head2 perlmint, README.mint - Perl version 5 on Atari MiNT
 
@@ -7594,9 +8209,13 @@
 =item AUTHOR
 
-=item Name
-
-=item Description
-
-=item Build
+=back
+
+=head2 perlnetware - Perl for NetWare
+
+=over 4
+
+=item DESCRIPTION
+
+=item BUILD
 
 =over 4
@@ -7616,13 +8235,13 @@
 =back
 
-=item Install
-
-=item Build new extensions
-
-=item Acknowledgements
-
-=item Authors
-
-=item Date
+=item INSTALL
+
+=item BUILD NEW EXTENSIONS
+
+=item ACKNOWLEDGEMENTS
+
+=item AUTHORS
+
+=item DATE
 
 =back
@@ -7740,4 +8359,17 @@
 
 =item C<a.out>-style build
+
+=back
+
+=item Building a binary distribution
+
+=item Building custom F<.EXE> files
+
+=over 4
+
+=item Making executables with a custom collection of statically loaded
+extensions
+
+=item Making executables with a custom search-paths
 
 =back
@@ -7941,4 +8573,64 @@
 =back
 
+=head2 perlos400, README.os400 - Perl version 5 on OS/400
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item Compiling Perl for OS/400 PASE
+
+=item Installing Perl in OS/400 PASE
+
+=item Using Perl in OS/400 PASE
+
+=item Known Problems
+
+=item Perl on ILE
+
+=back
+
+=item AUTHORS
+
+=back
+
+=head2 perlplan9 - Plan 9-specific documentation for Perl
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item Invoking Perl
+
+=item What's in Plan 9 Perl
+
+=item What's not in Plan 9 Perl
+
+=item Perl5 Functions not currently supported in Plan 9 Perl
+
+=item Signals in Plan 9 Perl
+
+=back
+
+=item COMPILING AND INSTALLING PERL ON PLAN 9
+
+=over 4
+
+=item Installing Perl Documentation on Plan 9
+
+=back
+
+=item BUGS
+
+=item Revision date
+
+=item AUTHOR
+
+=back
+
 =head2 perlqnx, README.qnx - Perl version 5 on QNX
 
@@ -7967,40 +8659,4 @@
 =back
 
-=head2 perlplan9 - Plan 9-specific documentation for Perl
-
-=over 4
-
-=item DESCRIPTION
-
-=over 4
-
-=item Invoking Perl
-
-=item What's in Plan 9 Perl
-
-=item What's not in Plan 9 Perl
-
-=item Perl5 Functions not currently supported in Plan 9 Perl
-
-=item Signals in Plan 9 Perl
-
-=back
-
-=item COMPILING AND INSTALLING PERL ON PLAN 9
-
-=over 4
-
-=item Installing Perl Documentation on Plan 9
-
-=back
-
-=item BUGS
-
-=item Revision date
-
-=item AUTHOR
-
-=back
-
 =head2 perlsolaris, README.solaris - Perl version 5 on Solaris systems
 
@@ -8027,5 +8683,5 @@
 =item Compiler and Related Tools on Solaris.
 
-=item Environment for Compiling Perl on Solaris
+=item Environment for Compiling perl on Solaris
 
 =back
@@ -8035,9 +8691,9 @@
 =over 4
 
-=item 64-bit Issues with Perl on Solaris.
-
-=item Threads in Perl on Solaris.
-
-=item Malloc Issues with Perl on Solaris.
+=item 64-bit perl on Solaris.
+
+=item Threads in perl on Solaris.
+
+=item Malloc Issues with perl on Solaris.
 
 =back
@@ -8083,4 +8739,6 @@
 =back
 
+=item SunOS 4.x
+
 =item AUTHOR
 
@@ -8105,4 +8763,6 @@
 
 =item Long Doubles on Tru64
+
+=item DB_File tests failing on Tru64
 
 =item 64-bit Perl on Tru64
@@ -8304,5 +8964,5 @@
 
 Make, Command Shell, Borland C++, Microsoft Visual C++, Microsoft Platform
-SDK 64-bit Compiler, Mingw32 with GCC
+SDK 64-bit Compiler, MinGW32 with gcc, MinGW release 1
 
 =item Building
@@ -8375,6 +9035,7 @@
 =item FUNCTIONS
 
-share VARIABLE, lock VARIABLE, cond_wait VARIABLE, cond_signal VARIABLE,
-cond_broadcast VARIABLE
+share VARIABLE, lock VARIABLE, cond_wait VARIABLE, cond_wait CONDVAR,
+LOCKVAR, cond_timedwait VARIABLE, ABS_TIMEOUT, cond_timedwait CONDVAR,
+ABS_TIMEOUT, LOCKVAR, cond_signal VARIABLE, cond_broadcast VARIABLE
 
 =item NOTES
@@ -8410,5 +9071,6 @@
 
 Parent-Child threads, Returning objects, Creating threads inside BEGIN
-blocks, PERL_OLD_SIGNALS are not threadsafe, will not be
+blocks, PERL_OLD_SIGNALS are not threadsafe, will not be, Detached threads
+on Windows
 
 =item AUTHOR and COPYRIGHT
@@ -8462,16 +9124,4 @@
 =back
 
-=head2 attrs - set/get attributes of a subroutine (deprecated)
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-method, locked
-
-=back
-
 =head2 autouse - postpone load of modules until a function is used
 
@@ -8490,5 +9140,5 @@
 =back
 
-=head2 base - Establish IS-A relationship with base class at compile time
+=head2 base - Establish IS-A relationship with base classes at compile time
 
 =over 4
@@ -8500,9 +9150,11 @@
 =item HISTORY
 
-=item SEE ALSO
-
-=back
-
-=head2 bigint - Transparent big integer support for Perl
+=item CAVEATS
+
+=item SEE ALSO
+
+=back
+
+=head2 bigint - Transparent BigInteger support for Perl
 
 =over 4
@@ -8526,4 +9178,6 @@
 =item METHODS
 
+=item CAVEAT
+
 =back
 
@@ -8554,4 +9208,10 @@
 a or accuracy, p or precision, t or trace, l or lib, v or version
 
+=item METHODS
+
+=item CAVEAT
+
+inf(), NaN(), upgrade()
+
 =item MATH LIBRARY
 
@@ -8560,37 +9220,37 @@
 =item SIGN
 
+=back
+
+=item MODULES USED
+
+=item EXAMPLES
+
+=item LICENSE
+
+=item SEE ALSO
+
+=item AUTHORS
+
+=back
+
+=head2 bigrat - Transparent BigNumber/BigRational support for Perl
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over 4
+
+=item MODULES USED
+
+=item MATH LIBRARY
+
+=item SIGN
+
 =item METHODS
 
-=back
-
-=item MODULES USED
-
-=item EXAMPLES
-
-=item LICENSE
-
-=item SEE ALSO
-
-=item AUTHORS
-
-=back
-
-=head2 bigrat - Transparent BigNumber/BigRational support for Perl
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=over 4
-
-=item MODULES USED
-
-=item MATH LIBRARY
-
-=item SIGN
-
-=item METHODS
+=item CAVEAT
 
 =back
@@ -8635,4 +9295,6 @@
 =item DESCRIPTION
 
+=item LIMITATIONS
+
 =item SEE ALSO
 
@@ -8650,4 +9312,16 @@
 =item CUSTOM TRANSLATORS
 
+=item CUSTOM ALIASES
+
+=over 4
+
+=item Anonymous hashes
+
+=item Alias file
+
+=item Alias shortcut
+
+=back
+
 =item charnames::viacode(code)
 
@@ -8692,6 +9366,5 @@
 =back
 
-=head2 diagnostics - Perl compiler pragma to force verbose warning
-diagnostics
+=head2 diagnostics, splain - produce verbose warning diagnostics
 
 =over 4
@@ -8727,8 +9400,30 @@
 =item ABSTRACT
 
+=over 4
+
+=item Literal Conversions
+
+=item PerlIO layers for C<STD(IN|OUT)>
+
+=item Implicit upgrading for byte strings
+
+=back
+
+=item FEATURES THAT REQUIRE 5.8.1
+
+"NON-EUC" doublebyte encodings, tr//, DATA pseudo-filehandle
+
 =item USAGE
 
 use encoding [I<ENCNAME>] ;, use encoding I<ENCNAME> [ STDIN =E<gt>
-I<ENCNAME_IN> ...] ;, no encoding;
+I<ENCNAME_IN> ...] ;, use encoding I<ENCNAME> Filter=E<gt>1;, no encoding;
+
+=item The Filter Option
+
+=over 4
+
+=item Filter-related changes at Encode version 1.87
+
+=back
 
 =item CAVEATS
@@ -8740,13 +9435,17 @@
 =item DO NOT MIX MULTIPLE ENCODINGS
 
-=back
-
-=item Non-ASCII Identifiers and Filter option
-
-use encoding I<ENCNAME> Filter=E<gt>1;
+=item tr/// with ranges
+
+Legend of characters above
+
+=back
 
 =item EXAMPLE - Greekperl
 
 =item KNOWN PROBLEMS
+
+literals in regex that are longer than 127 bytes, EBCDIC, format
+
+=item HISTORY
 
 =item SEE ALSO
@@ -8985,14 +9684,4 @@
 =back
 
-=head2 re - Perl pragma to alter regular expression behaviour
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=back
-
 =head2 sigtrap - Perl pragma to enable simple signal handling
 
@@ -9047,4 +9736,6 @@
 C<strict refs>, C<strict vars>, C<strict subs>
 
+=item HISTORY
+
 =back
 
@@ -9056,34 +9747,4 @@
 
 =item DESCRIPTION
-
-=back
-
-=head2 threads - Perl extension allowing use of interpreter based threads
-from perl
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-$thread = threads->create(function, LIST), $thread->join, $thread->detach,
-threads->self, $thread->tid, threads->object( tid ), threads->yield();,
-threads->list();, async BLOCK;
-
-=item WARNINGS
-
-A thread exited while %d other threads were still running
-
-=item TODO
-
-=item BUGS
-
-Parent-Child threads, Returning objects, Creating threads inside BEGIN
-blocks, PERL_OLD_SIGNALS are not threadsafe, will not be
-
-=item AUTHOR and COPYRIGHT
-
-=item SEE ALSO
 
 =back
@@ -9102,6 +9763,7 @@
 =item FUNCTIONS
 
-share VARIABLE, lock VARIABLE, cond_wait VARIABLE, cond_signal VARIABLE,
-cond_broadcast VARIABLE
+share VARIABLE, lock VARIABLE, cond_wait VARIABLE, cond_wait CONDVAR,
+LOCKVAR, cond_timedwait VARIABLE, ABS_TIMEOUT, cond_timedwait CONDVAR,
+ABS_TIMEOUT, LOCKVAR, cond_signal VARIABLE, cond_broadcast VARIABLE
 
 =item NOTES
@@ -9128,7 +9790,7 @@
 =item Utility functions
 
-$num_octets = utf8::upgrade($string);, utf8::downgrade($string[, FAIL_OK]),
-utf8::encode($string), $flag = utf8::decode($string), $flag =
-utf8::valid(STRING)
+$num_octets = utf8::upgrade($string), $success = utf8::downgrade($string[,
+FAIL_OK]), utf8::encode($string), utf8::decode($string), $flag =
+utf8::is_utf8(STRING), $flag = utf8::valid(STRING)
 
 =back
@@ -9312,4 +9974,31 @@
 =item DESCRIPTION
 
+=item OVERVIEW
+
+=item Utility Functions
+
+=over 4
+
+=item Functions Returning C<B::SV>, C<B::AV>, C<B::HV>, and C<B::CV>
+objects
+
+sv_undef, sv_yes, sv_no, svref_2object(SVREF), amagic_generation, init_av,
+check_av, begin_av, end_av, comppadlist, regex_padav, main_cv
+
+=item Functions for Examining the Symbol Table
+
+walksymtable(SYMREF, METHOD, RECURSE, PREFIX)
+
+=item Functions Returning C<B::OP> objects or for walking op trees
+
+main_root, main_start, walkoptree(OP, METHOD), walkoptree_debug(DEBUG)
+
+=item Miscellaneous Utility Functions
+
+ppname(OPNUM), hash(STR), cast_I32(I), minus_c, cstring(STR),
+perlstring(STR), class(OBJ), threadsv_names
+
+=back
+
 =item OVERVIEW OF CLASSES
 
@@ -9318,60 +10007,60 @@
 =item SV-RELATED CLASSES
 
-=item B::SV METHODS
-
-REFCNT, FLAGS
-
-=item B::IV METHODS
+=item B::SV Methods
+
+REFCNT, FLAGS, object_2svref
+
+=item B::IV Methods
 
 IV, IVX, UVX, int_value, needs64bits, packiv
 
-=item B::NV METHODS
+=item B::NV Methods
 
 NV, NVX
 
-=item B::RV METHODS
+=item B::RV Methods
 
 RV
 
-=item B::PV METHODS
+=item B::PV Methods
 
 PV, RV, PVX
 
-=item B::PVMG METHODS
+=item B::PVMG Methods
 
 MAGIC, SvSTASH
 
-=item B::MAGIC METHODS
+=item B::MAGIC Methods
 
 MOREMAGIC, precomp, PRIVATE, TYPE, FLAGS, OBJ, PTR, REGEX
 
-=item B::PVLV METHODS
+=item B::PVLV Methods
 
 TARGOFF, TARGLEN, TYPE, TARG
 
-=item B::BM METHODS
+=item B::BM Methods
 
 USEFUL, PREVIOUS, RARE, TABLE
 
-=item B::GV METHODS
+=item B::GV Methods
 
 is_empty, NAME, SAFENAME, STASH, SV, IO, FORM, AV, HV, EGV, CV, CVGEN,
 LINE, FILE, FILEGV, GvREFCNT, FLAGS
 
-=item B::IO METHODS
+=item B::IO Methods
 
 LINES, PAGE, PAGE_LEN, LINES_LEFT, TOP_NAME, TOP_GV, FMT_NAME, FMT_GV,
 BOTTOM_NAME, BOTTOM_GV, SUBPROCESS, IoTYPE, IoFLAGS, IsSTD
 
-=item B::AV METHODS
-
-FILL, MAX, OFF, ARRAY, AvFLAGS
-
-=item B::CV METHODS
-
-STASH, START, ROOT, GV, FILE, DEPTH, PADLIST, OUTSIDE, XSUB, XSUBANY,
-CvFLAGS, const_sv
-
-=item B::HV METHODS
+=item B::AV Methods
+
+FILL, MAX, OFF, ARRAY, ARRAYelt, AvFLAGS
+
+=item B::CV Methods
+
+STASH, START, ROOT, GV, FILE, DEPTH, PADLIST, OUTSIDE, OUTSIDE_SEQ, XSUB,
+XSUBANY, CvFLAGS, const_sv
+
+=item B::HV Methods
 
 FILL, MAX, KEYS, RITER, NAME, PMROOT, ARRAY
@@ -9379,5 +10068,5 @@
 =item OP-RELATED CLASSES
 
-=item B::OP METHODS
+=item B::OP Methods
 
 next, sibling, name, ppaddr, desc, targ, type, seq, flags, private
@@ -9399,8 +10088,8 @@
 children
 
-=item B::PMOP METHODS
+=item B::PMOP Methods
 
 pmreplroot, pmreplstart, pmnext, pmregexp, pmflags, pmdynflags,
-pmpermflags, precomp, pmoffet
+pmpermflags, precomp, pmoffset
 
 =item B::SVOP METHOD
@@ -9416,21 +10105,13 @@
 pv
 
-=item B::LOOP METHODS
+=item B::LOOP Methods
 
 redoop, nextop, lastop
 
-=item B::COP METHODS
-
-label, stash, file, cop_seq, arybase, line
-
-=back
-
-=item FUNCTIONS EXPORTED BY C<B>
-
-main_cv, init_av, begin_av, end_av, main_root, main_start, comppadlist,
-regex_padav, sv_undef, sv_yes, sv_no, amagic_generation, walkoptree(OP,
-METHOD), walkoptree_debug(DEBUG), walksymtable(SYMREF, METHOD, RECURSE,
-PREFIX), svref_2object(SV), ppname(OPNUM), hash(STR), cast_I32(I), minus_c,
-cstring(STR), perlstring(STR), class(OBJ), threadsv_names
+=item B::COP Methods
+
+label, stash, stashpv, file, cop_seq, arybase, line, warnings, io
+
+=back
 
 =item AUTHOR
@@ -9493,13 +10174,13 @@
 =item DESCRIPTION
 
+=item EXAMPLE
+
 =item OPTIONS
 
-B<-ofilename>, B<-afilename>, B<-->, B<-f>, B<-fcompress-nullops>,
-B<-fomit-sequence-numbers>, B<-fbypass-nullops>, B<-On>, B<-D>, B<-Do>,
-B<-Db>, B<-Da>, B<-DC>, B<-S>, B<-upackage>
-
-=item EXAMPLES
-
-=item BUGS
+B<-b>, B<-H>, B<-k>, B<-o>I<outfile>, B<-s>
+
+=item KNOWN BUGS
+
+=item NOTICE
 
 =item AUTHORS
@@ -9631,5 +10312,5 @@
 =item OPTIONS
 
-B<-l>, B<-p>, B<-P>, B<-q>, B<-f>I<FILE>, B<-s>I<LETTERS>, B<C>,
+B<-d>, B<-f>I<FILE>, B<-l>, B<-p>, B<-P>, B<-q>, B<-s>I<LETTERS>, B<C>,
 B<i>I<NUMBER>, B<T>, B<v>I<STRING>B<.>, B<-x>I<LEVEL>
 
@@ -9680,6 +10361,7 @@
 =item OPTIONS AND LINT CHECKS
 
-B<context>, B<implicit-read> and B<implicit-write>, B<dollar-underscore>,
-B<private-names>, B<undefined-subs>, B<regexp-variables>, B<all>, B<none>
+B<context>, B<implicit-read> and B<implicit-write>, B<bare-subs>,
+B<dollar-underscore>, B<private-names>, B<undefined-subs>,
+B<regexp-variables>, B<all>, B<none>
 
 =item NON LINT-CHECK OPTIONS
@@ -9809,8 +10491,10 @@
 =item Optional Exports
 
-clearcache ( COUNT ), clearallcache ( ), cmpthese ( COUT, CODEHASHREF, [
+clearcache ( COUNT ), clearallcache ( ), cmpthese ( COUNT, CODEHASHREF, [
 STYLE ] ), cmpthese ( RESULTSHASHREF, [ STYLE ] ), countit(TIME, CODE),
 disablecache ( ), enablecache ( ), timesum ( T1, T2 )
 
+=item :hireswallclock
+
 =back
 
@@ -9853,13 +10537,13 @@
 =item DESCRIPTION
 
+=item EXAMPLE
+
 =item OPTIONS
 
-B<-ofilename>, B<-afilename>, B<-->, B<-f>, B<-fcompress-nullops>,
-B<-fomit-sequence-numbers>, B<-fbypass-nullops>, B<-On>, B<-D>, B<-Do>,
-B<-Db>, B<-Da>, B<-DC>, B<-S>, B<-upackage>
-
-=item EXAMPLES
-
-=item BUGS
+B<-b>, B<-H>, B<-k>, B<-o>I<outfile>, B<-s>
+
+=item KNOWN BUGS
+
+=item NOTICE
 
 =item AUTHORS
@@ -10000,4 +10684,6 @@
 =item CREATING A POPUP MENU
 
+=item CREATING AN OPTION GROUP
+
 =item CREATING A SCROLLING LIST
 
@@ -10030,5 +10716,6 @@
 =item CREATING A CLICKABLE IMAGE BUTTON
 
-B<Parameters:>
+B<Parameters:>, 3. The third option (-align, optional) is an alignment
+type, and may be TOP, BOTTOM or MIDDLE
 
 =item CREATING A JAVASCRIPT ACTION BUTTON
@@ -10060,8 +10747,9 @@
 
 B<Accept()>, B<raw_cookie()>, B<user_agent()>, B<path_info()>,
-B<path_translated()>, B<remote_host()>, B<script_name()>, B<referer()>,
-B<auth_type ()>, B<server_name ()>, B<virtual_host ()>, B<server_port ()>,
-B<server_software ()>, B<remote_user ()>, B<user_name ()>,
-B<request_method()>, B<content_type()>, B<http()>, B<https()>
+B<path_translated()>, B<remote_host()>, B<script_name()> Return the script
+name as a partial URL, for self-refering scripts, B<referer()>, B<auth_type
+()>, B<server_name ()>, B<virtual_host ()>, B<server_port ()>,
+B<virtual_port ()>, B<server_software ()>, B<remote_user ()>, B<user_name
+()>, B<request_method()>, B<content_type()>, B<http()>, B<https()>
 
 =item USING NPH SCRIPTS
@@ -10145,5 +10833,5 @@
 =item MAKING WARNINGS APPEAR AS HTML COMMENTS
 
-=item CHANGE LOG
+=item OVERRIDING THE NAME OF THE PROGRAM
 
 =item AUTHORS
@@ -10308,4 +10996,6 @@
 
 =item SYNOPSIS
+
+=item STATUS
 
 =item DESCRIPTION
@@ -10525,5 +11215,5 @@
 =item DESCRIPTION
 
-myconfig(), config_sh(), config_vars(@names)
+myconfig(), config_sh(), config_re($regex), config_vars(@names)
 
 =item EXAMPLE
@@ -10562,77 +11252,79 @@
 =item d
 
-C<d__fwalk>, C<d_access>, C<d_accessx>, C<d_alarm>, C<d_archlib>,
-C<d_asctime_r>, C<d_atolf>, C<d_atoll>, C<d_attribut>, C<d_bcmp>,
-C<d_bcopy>, C<d_bsd>, C<d_bsdgetpgrp>, C<d_bsdsetpgrp>, C<d_bzero>,
-C<d_casti32>, C<d_castneg>, C<d_charvspr>, C<d_chown>, C<d_chroot>,
-C<d_chsize>, C<d_class>, C<d_closedir>, C<d_cmsghdr_s>, C<d_const>,
-C<d_crypt>, C<d_crypt_r>, C<d_csh>, C<d_ctermid_r>, C<d_ctime_r>,
-C<d_cuserid>, C<d_dbl_dig>, C<d_dbminitproto>, C<d_difftime>, C<d_dirfd>,
-C<d_dirnamlen>, C<d_dlerror>, C<d_dlopen>, C<d_dlsymun>, C<d_dosuid>,
-C<d_drand48_r>, C<d_drand48proto>, C<d_dup2>, C<d_eaccess>, C<d_endgrent>,
-C<d_endgrent_r>, C<d_endhent>, C<d_endhostent_r>, C<d_endnent>,
-C<d_endnetent_r>, C<d_endpent>, C<d_endprotoent_r>, C<d_endpwent>,
-C<d_endpwent_r>, C<d_endsent>, C<d_endservent_r>, C<d_eofnblk>,
-C<d_eunice>, C<d_fchdir>, C<d_fchmod>, C<d_fchown>, C<d_fcntl>,
-C<d_fcntl_can_lock>, C<d_fd_macros>, C<d_fd_set>, C<d_fds_bits>,
-C<d_fgetpos>, C<d_finite>, C<d_finitel>, C<d_flexfnam>, C<d_flock>,
-C<d_flockproto>, C<d_fork>, C<d_fp_class>, C<d_fpathconf>, C<d_fpclass>,
-C<d_fpclassify>, C<d_fpclassl>, C<d_fpos64_t>, C<d_frexpl>, C<d_fs_data_s>,
-C<d_fseeko>, C<d_fsetpos>, C<d_fstatfs>, C<d_fstatvfs>, C<d_fsync>,
-C<d_ftello>, C<d_ftime>, C<d_Gconvert>, C<d_getcwd>, C<d_getespwnam>,
-C<d_getfsstat>, C<d_getgrent>, C<d_getgrent_r>, C<d_getgrgid_r>,
-C<d_getgrnam_r>, C<d_getgrps>, C<d_gethbyaddr>, C<d_gethbyname>,
-C<d_gethent>, C<d_gethname>, C<d_gethostbyaddr_r>, C<d_gethostbyname_r>,
-C<d_gethostent_r>, C<d_gethostprotos>, C<d_getitimer>, C<d_getlogin>,
-C<d_getlogin_r>, C<d_getmnt>, C<d_getmntent>, C<d_getnbyaddr>,
-C<d_getnbyname>, C<d_getnent>, C<d_getnetbyaddr_r>, C<d_getnetbyname_r>,
-C<d_getnetent_r>, C<d_getnetprotos>, C<d_getpagsz>, C<d_getpbyname>,
-C<d_getpbynumber>, C<d_getpent>, C<d_getpgid>, C<d_getpgrp2>, C<d_getpgrp>,
-C<d_getppid>, C<d_getprior>, C<d_getprotobyname_r>,
-C<d_getprotobynumber_r>, C<d_getprotoent_r>, C<d_getprotoprotos>,
-C<d_getprpwnam>, C<d_getpwent>, C<d_getpwent_r>, C<d_getpwnam_r>,
-C<d_getpwuid_r>, C<d_getsbyname>, C<d_getsbyport>, C<d_getsent>,
-C<d_getservbyname_r>, C<d_getservbyport_r>, C<d_getservent_r>,
-C<d_getservprotos>, C<d_getspnam>, C<d_getspnam_r>, C<d_gettimeod>,
-C<d_gmtime_r>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>, C<d_htonl>,
-C<d_index>, C<d_inetaton>, C<d_int64_t>, C<d_isascii>, C<d_isfinite>,
-C<d_isinf>, C<d_isnan>, C<d_isnanl>, C<d_killpg>, C<d_lchown>,
-C<d_ldbl_dig>, C<d_link>, C<d_localtime_r>, C<d_locconv>, C<d_lockf>,
-C<d_longdbl>, C<d_longlong>, C<d_lseekproto>, C<d_lstat>, C<d_madvise>,
-C<d_mblen>, C<d_mbstowcs>, C<d_mbtowc>, C<d_memchr>, C<d_memcmp>,
-C<d_memcpy>, C<d_memmove>, C<d_memset>, C<d_mkdir>, C<d_mkdtemp>,
-C<d_mkfifo>, C<d_mkstemp>, C<d_mkstemps>, C<d_mktime>, C<d_mmap>,
-C<d_modfl>, C<d_modfl_pow32_bug>, C<d_mprotect>, C<d_msg>, C<d_msg_ctrunc>,
-C<d_msg_dontroute>, C<d_msg_oob>, C<d_msg_peek>, C<d_msg_proxy>,
-C<d_msgctl>, C<d_msgget>, C<d_msghdr_s>, C<d_msgrcv>, C<d_msgsnd>,
-C<d_msync>, C<d_munmap>, C<d_mymalloc>, C<d_nice>, C<d_nl_langinfo>,
-C<d_nv_preserves_uv>, C<d_off64_t>, C<d_old_pthread_create_joinable>,
-C<d_oldpthreads>, C<d_oldsock>, C<d_open3>, C<d_pathconf>, C<d_pause>,
+C<d__fwalk>, C<d_access>, C<d_accessx>, C<d_aintl>, C<d_alarm>,
+C<d_archlib>, C<d_asctime_r>, C<d_atolf>, C<d_atoll>, C<d_attribut>,
+C<d_bcmp>, C<d_bcopy>, C<d_bsd>, C<d_bsdgetpgrp>, C<d_bsdsetpgrp>,
+C<d_bzero>, C<d_casti32>, C<d_castneg>, C<d_charvspr>, C<d_chown>,
+C<d_chroot>, C<d_chsize>, C<d_class>, C<d_closedir>, C<d_cmsghdr_s>,
+C<d_const>, C<d_copysignl>, C<d_crypt>, C<d_crypt_r>, C<d_csh>,
+C<d_ctermid_r>, C<d_ctime_r>, C<d_cuserid>, C<d_dbl_dig>,
+C<d_dbminitproto>, C<d_difftime>, C<d_dirfd>, C<d_dirnamlen>, C<d_dlerror>,
+C<d_dlopen>, C<d_dlsymun>, C<d_dosuid>, C<d_drand48_r>, C<d_drand48proto>,
+C<d_dup2>, C<d_eaccess>, C<d_endgrent>, C<d_endgrent_r>, C<d_endhent>,
+C<d_endhostent_r>, C<d_endnent>, C<d_endnetent_r>, C<d_endpent>,
+C<d_endprotoent_r>, C<d_endpwent>, C<d_endpwent_r>, C<d_endsent>,
+C<d_endservent_r>, C<d_eofnblk>, C<d_eunice>, C<d_faststdio>, C<d_fchdir>,
+C<d_fchmod>, C<d_fchown>, C<d_fcntl>, C<d_fcntl_can_lock>, C<d_fd_macros>,
+C<d_fd_set>, C<d_fds_bits>, C<d_fgetpos>, C<d_finite>, C<d_finitel>,
+C<d_flexfnam>, C<d_flock>, C<d_flockproto>, C<d_fork>, C<d_fp_class>,
+C<d_fpathconf>, C<d_fpclass>, C<d_fpclassify>, C<d_fpclassl>,
+C<d_fpos64_t>, C<d_frexpl>, C<d_fs_data_s>, C<d_fseeko>, C<d_fsetpos>,
+C<d_fstatfs>, C<d_fstatvfs>, C<d_fsync>, C<d_ftello>, C<d_ftime>,
+C<d_Gconvert>, C<d_getcwd>, C<d_getespwnam>, C<d_getfsstat>, C<d_getgrent>,
+C<d_getgrent_r>, C<d_getgrgid_r>, C<d_getgrnam_r>, C<d_getgrps>,
+C<d_gethbyaddr>, C<d_gethbyname>, C<d_gethent>, C<d_gethname>,
+C<d_gethostbyaddr_r>, C<d_gethostbyname_r>, C<d_gethostent_r>,
+C<d_gethostprotos>, C<d_getitimer>, C<d_getlogin>, C<d_getlogin_r>,
+C<d_getmnt>, C<d_getmntent>, C<d_getnbyaddr>, C<d_getnbyname>,
+C<d_getnent>, C<d_getnetbyaddr_r>, C<d_getnetbyname_r>, C<d_getnetent_r>,
+C<d_getnetprotos>, C<d_getpagsz>, C<d_getpbyname>, C<d_getpbynumber>,
+C<d_getpent>, C<d_getpgid>, C<d_getpgrp2>, C<d_getpgrp>, C<d_getppid>,
+C<d_getprior>, C<d_getprotobyname_r>, C<d_getprotobynumber_r>,
+C<d_getprotoent_r>, C<d_getprotoprotos>, C<d_getprpwnam>, C<d_getpwent>,
+C<d_getpwent_r>, C<d_getpwnam_r>, C<d_getpwuid_r>, C<d_getsbyname>,
+C<d_getsbyport>, C<d_getsent>, C<d_getservbyname_r>, C<d_getservbyport_r>,
+C<d_getservent_r>, C<d_getservprotos>, C<d_getspnam>, C<d_getspnam_r>,
+C<d_gettimeod>, C<d_gmtime_r>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>,
+C<d_htonl>, C<d_ilogbl>, C<d_index>, C<d_inetaton>, C<d_int64_t>,
+C<d_isascii>, C<d_isfinite>, C<d_isinf>, C<d_isnan>, C<d_isnanl>,
+C<d_killpg>, C<d_lchown>, C<d_ldbl_dig>, C<d_link>, C<d_localtime_r>,
+C<d_locconv>, C<d_lockf>, C<d_longdbl>, C<d_longlong>, C<d_lseekproto>,
+C<d_lstat>, C<d_madvise>, C<d_mblen>, C<d_mbstowcs>, C<d_mbtowc>,
+C<d_memchr>, C<d_memcmp>, C<d_memcpy>, C<d_memmove>, C<d_memset>,
+C<d_mkdir>, C<d_mkdtemp>, C<d_mkfifo>, C<d_mkstemp>, C<d_mkstemps>,
+C<d_mktime>, C<d_mmap>, C<d_modfl>, C<d_modfl_pow32_bug>, C<d_modflproto>,
+C<d_mprotect>, C<d_msg>, C<d_msg_ctrunc>, C<d_msg_dontroute>, C<d_msg_oob>,
+C<d_msg_peek>, C<d_msg_proxy>, C<d_msgctl>, C<d_msgget>, C<d_msghdr_s>,
+C<d_msgrcv>, C<d_msgsnd>, C<d_msync>, C<d_munmap>, C<d_mymalloc>,
+C<d_nanosleep>, C<d_nice>, C<d_nl_langinfo>, C<d_nv_preserves_uv>,
+C<d_off64_t>, C<d_old_pthread_create_joinable>, C<d_oldpthreads>,
+C<d_oldsock>, C<d_open3>, C<d_pathconf>, C<d_pause>,
 C<d_perl_otherlibdirs>, C<d_phostname>, C<d_pipe>, C<d_poll>,
 C<d_portable>, C<d_PRId64>, C<d_PRIeldbl>, C<d_PRIEUldbl>, C<d_PRIfldbl>,
 C<d_PRIFUldbl>, C<d_PRIgldbl>, C<d_PRIGUldbl>, C<d_PRIi64>, C<d_PRIo64>,
 C<d_PRIu64>, C<d_PRIx64>, C<d_PRIXU64>, C<d_procselfexe>,
-C<d_pthread_atfork>, C<d_pthread_yield>, C<d_pwage>, C<d_pwchange>,
-C<d_pwclass>, C<d_pwcomment>, C<d_pwexpire>, C<d_pwgecos>, C<d_pwpasswd>,
-C<d_pwquota>, C<d_qgcvt>, C<d_quad>, C<d_random_r>, C<d_readdir64_r>,
-C<d_readdir>, C<d_readdir_r>, C<d_readlink>, C<d_readv>, C<d_recvmsg>,
-C<d_rename>, C<d_rewinddir>, C<d_rmdir>, C<d_safebcpy>, C<d_safemcpy>,
-C<d_sanemcmp>, C<d_sbrkproto>, C<d_sched_yield>, C<d_scm_rights>,
-C<d_SCNfldbl>, C<d_seekdir>, C<d_select>, C<d_sem>, C<d_semctl>,
-C<d_semctl_semid_ds>, C<d_semctl_semun>, C<d_semget>, C<d_semop>,
-C<d_sendmsg>, C<d_setegid>, C<d_seteuid>, C<d_setgrent>, C<d_setgrent_r>,
-C<d_setgrps>, C<d_sethent>, C<d_sethostent_r>, C<d_setitimer>,
-C<d_setlinebuf>, C<d_setlocale>, C<d_setlocale_r>, C<d_setnent>,
-C<d_setnetent_r>, C<d_setpent>, C<d_setpgid>, C<d_setpgrp2>, C<d_setpgrp>,
-C<d_setprior>, C<d_setproctitle>, C<d_setprotoent_r>, C<d_setpwent>,
-C<d_setpwent_r>, C<d_setregid>, C<d_setresgid>, C<d_setresuid>,
-C<d_setreuid>, C<d_setrgid>, C<d_setruid>, C<d_setsent>, C<d_setservent_r>,
-C<d_setsid>, C<d_setvbuf>, C<d_sfio>, C<d_shm>, C<d_shmat>,
-C<d_shmatprototype>, C<d_shmctl>, C<d_shmdt>, C<d_shmget>, C<d_sigaction>,
-C<d_sigprocmask>, C<d_sigsetjmp>, C<d_sockatmark>, C<d_sockatmarkproto>,
-C<d_socket>, C<d_socklen_t>, C<d_sockpair>, C<d_socks5_init>, C<d_sqrtl>,
-C<d_srand48_r>, C<d_srandom_r>, C<d_sresgproto>, C<d_sresuproto>,
-C<d_statblks>, C<d_statfs_f_flags>, C<d_statfs_s>, C<d_statvfs>,
-C<d_stdio_cnt_lval>, C<d_stdio_ptr_lval>, C<d_stdio_ptr_lval_nochange_cnt>,
+C<d_pthread_atfork>, C<d_pthread_attr_setscope>, C<d_pthread_yield>,
+C<d_pwage>, C<d_pwchange>, C<d_pwclass>, C<d_pwcomment>, C<d_pwexpire>,
+C<d_pwgecos>, C<d_pwpasswd>, C<d_pwquota>, C<d_qgcvt>, C<d_quad>,
+C<d_random_r>, C<d_readdir64_r>, C<d_readdir>, C<d_readdir_r>,
+C<d_readlink>, C<d_readv>, C<d_recvmsg>, C<d_rename>, C<d_rewinddir>,
+C<d_rmdir>, C<d_safebcpy>, C<d_safemcpy>, C<d_sanemcmp>, C<d_sbrkproto>,
+C<d_scalbnl>, C<d_sched_yield>, C<d_scm_rights>, C<d_SCNfldbl>,
+C<d_seekdir>, C<d_select>, C<d_sem>, C<d_semctl>, C<d_semctl_semid_ds>,
+C<d_semctl_semun>, C<d_semget>, C<d_semop>, C<d_sendmsg>, C<d_setegid>,
+C<d_seteuid>, C<d_setgrent>, C<d_setgrent_r>, C<d_setgrps>, C<d_sethent>,
+C<d_sethostent_r>, C<d_setitimer>, C<d_setlinebuf>, C<d_setlocale>,
+C<d_setlocale_r>, C<d_setnent>, C<d_setnetent_r>, C<d_setpent>,
+C<d_setpgid>, C<d_setpgrp2>, C<d_setpgrp>, C<d_setprior>,
+C<d_setproctitle>, C<d_setprotoent_r>, C<d_setpwent>, C<d_setpwent_r>,
+C<d_setregid>, C<d_setresgid>, C<d_setresuid>, C<d_setreuid>, C<d_setrgid>,
+C<d_setruid>, C<d_setsent>, C<d_setservent_r>, C<d_setsid>, C<d_setvbuf>,
+C<d_sfio>, C<d_shm>, C<d_shmat>, C<d_shmatprototype>, C<d_shmctl>,
+C<d_shmdt>, C<d_shmget>, C<d_sigaction>, C<d_sigprocmask>, C<d_sigsetjmp>,
+C<d_sockatmark>, C<d_sockatmarkproto>, C<d_socket>, C<d_socklen_t>,
+C<d_sockpair>, C<d_socks5_init>, C<d_sqrtl>, C<d_srand48_r>,
+C<d_srandom_r>, C<d_sresgproto>, C<d_sresuproto>, C<d_statblks>,
+C<d_statfs_f_flags>, C<d_statfs_s>, C<d_statvfs>, C<d_stdio_cnt_lval>,
+C<d_stdio_ptr_lval>, C<d_stdio_ptr_lval_nochange_cnt>,
 C<d_stdio_ptr_lval_sets_cnt>, C<d_stdio_stream_array>, C<d_stdiobase>,
 C<d_stdstdio>, C<d_strchr>, C<d_strcoll>, C<d_strctcpy>, C<d_strerrm>,
@@ -10646,10 +11338,11 @@
 C<d_u32align>, C<d_ualarm>, C<d_umask>, C<d_uname>, C<d_union_semun>,
 C<d_unordered>, C<d_usleep>, C<d_usleepproto>, C<d_ustat>, C<d_vendorarch>,
-C<d_vendorbin>, C<d_vendorlib>, C<d_vfork>, C<d_void_closedir>,
-C<d_voidsig>, C<d_voidtty>, C<d_volatile>, C<d_vprintf>, C<d_wait4>,
-C<d_waitpid>, C<d_wcstombs>, C<d_wctomb>, C<d_writev>, C<d_xenix>, C<date>,
-C<db_hashtype>, C<db_prefixtype>, C<db_version_major>, C<db_version_minor>,
-C<db_version_patch>, C<defvoidused>, C<direntrytype>, C<dlext>, C<dlsrc>,
-C<doublesize>, C<drand01>, C<drand48_r_proto>, C<dynamic_ext>
+C<d_vendorbin>, C<d_vendorlib>, C<d_vendorscript>, C<d_vfork>,
+C<d_void_closedir>, C<d_voidsig>, C<d_voidtty>, C<d_volatile>,
+C<d_vprintf>, C<d_wait4>, C<d_waitpid>, C<d_wcstombs>, C<d_wctomb>,
+C<d_writev>, C<d_xenix>, C<date>, C<db_hashtype>, C<db_prefixtype>,
+C<db_version_major>, C<db_version_minor>, C<db_version_patch>,
+C<defvoidused>, C<direntrytype>, C<dlext>, C<dlsrc>, C<doublesize>,
+C<drand01>, C<drand48_r_proto>, C<dynamic_ext>
 
 =item e
@@ -10668,18 +11361,19 @@
 =item g
 
-C<gccosandvers>, C<gccversion>, C<getgrent_r_proto>, C<getgrgid_r_proto>,
-C<getgrnam_r_proto>, C<gethostbyaddr_r_proto>, C<gethostbyname_r_proto>,
-C<gethostent_r_proto>, C<getlogin_r_proto>, C<getnetbyaddr_r_proto>,
-C<getnetbyname_r_proto>, C<getnetent_r_proto>, C<getprotobyname_r_proto>,
-C<getprotobynumber_r_proto>, C<getprotoent_r_proto>, C<getpwent_r_proto>,
-C<getpwnam_r_proto>, C<getpwuid_r_proto>, C<getservbyname_r_proto>,
-C<getservbyport_r_proto>, C<getservent_r_proto>, C<getspnam_r_proto>,
-C<gidformat>, C<gidsign>, C<gidsize>, C<gidtype>, C<glibpth>, C<gmake>,
-C<gmtime_r_proto>, C<gnulibc_version>, C<grep>, C<groupcat>, C<groupstype>,
-C<gzip>
+C<gccansipedantic>, C<gccosandvers>, C<gccversion>, C<getgrent_r_proto>,
+C<getgrgid_r_proto>, C<getgrnam_r_proto>, C<gethostbyaddr_r_proto>,
+C<gethostbyname_r_proto>, C<gethostent_r_proto>, C<getlogin_r_proto>,
+C<getnetbyaddr_r_proto>, C<getnetbyname_r_proto>, C<getnetent_r_proto>,
+C<getprotobyname_r_proto>, C<getprotobynumber_r_proto>,
+C<getprotoent_r_proto>, C<getpwent_r_proto>, C<getpwnam_r_proto>,
+C<getpwuid_r_proto>, C<getservbyname_r_proto>, C<getservbyport_r_proto>,
+C<getservent_r_proto>, C<getspnam_r_proto>, C<gidformat>, C<gidsign>,
+C<gidsize>, C<gidtype>, C<glibpth>, C<gmake>, C<gmtime_r_proto>,
+C<gnulibc_version>, C<grep>, C<groupcat>, C<groupstype>, C<gzip>
 
 =item h
 
-C<h_fcntl>, C<h_sysfile>, C<hint>, C<hostcat>
+C<h_fcntl>, C<h_sysfile>, C<hint>, C<hostcat>, C<html1dir>, C<html1direxp>,
+C<html3dir>, C<html3direxp>
 
 =item i
@@ -10703,10 +11397,14 @@
 C<i_values>, C<i_varargs>, C<i_varhdr>, C<i_vfork>,
 C<ignore_versioned_solibs>, C<inc_version_list>, C<inc_version_list_init>,
-C<incpath>, C<inews>, C<installarchlib>, C<installbin>, C<installman1dir>,
-C<installman3dir>, C<installprefix>, C<installprefixexp>,
-C<installprivlib>, C<installscript>, C<installsitearch>, C<installsitebin>,
-C<installsitelib>, C<installstyle>, C<installusrbinperl>,
-C<installvendorarch>, C<installvendorbin>, C<installvendorlib>, C<intsize>,
-C<issymlink>, C<ivdformat>, C<ivsize>, C<ivtype>
+C<incpath>, C<inews>, C<installarchlib>, C<installbin>, C<installhtml1dir>,
+C<installhtml3dir>, C<installman1dir>, C<installman3dir>, C<installprefix>,
+C<installprefixexp>, C<installprivlib>, C<installscript>,
+C<installsitearch>, C<installsitebin>, C<installsitehtml1dir>,
+C<installsitehtml3dir>, C<installsitelib>, C<installsiteman1dir>,
+C<installsiteman3dir>, C<installsitescript>, C<installstyle>,
+C<installusrbinperl>, C<installvendorarch>, C<installvendorbin>,
+C<installvendorhtml1dir>, C<installvendorhtml3dir>, C<installvendorlib>,
+C<installvendorman1dir>, C<installvendorman3dir>, C<installvendorscript>,
+C<intsize>, C<issymlink>, C<ivdformat>, C<ivsize>, C<ivtype>
 
 =item k
@@ -10732,6 +11430,7 @@
 =item M
 
-C<Mcc>, C<mips_type>, C<mkdir>, C<mmaptype>, C<modetype>, C<more>,
-C<multiarch>, C<mv>, C<myarchname>, C<mydomain>, C<myhostname>, C<myuname>
+C<Mcc>, C<mips_type>, C<mistrustnm>, C<mkdir>, C<mmaptype>, C<modetype>,
+C<more>, C<multiarch>, C<mv>, C<myarchname>, C<mydomain>, C<myhostname>,
+C<myuname>
 
 =item n
@@ -10779,14 +11478,17 @@
 C<sig_count>, C<sig_name>, C<sig_name_init>, C<sig_num>, C<sig_num_init>,
 C<sig_size>, C<signal_t>, C<sitearch>, C<sitearchexp>, C<sitebin>,
-C<sitebinexp>, C<sitelib>, C<sitelib_stem>, C<sitelibexp>, C<siteprefix>,
-C<siteprefixexp>, C<sizesize>, C<sizetype>, C<sleep>, C<smail>, C<so>,
-C<sockethdr>, C<socketlib>, C<socksizetype>, C<sort>, C<spackage>,
-C<spitshell>, C<sPRId64>, C<sPRIeldbl>, C<sPRIEUldbl>, C<sPRIfldbl>,
-C<sPRIFUldbl>, C<sPRIgldbl>, C<sPRIGUldbl>, C<sPRIi64>, C<sPRIo64>,
-C<sPRIu64>, C<sPRIx64>, C<sPRIXU64>, C<srand48_r_proto>,
-C<srandom_r_proto>, C<src>, C<sSCNfldbl>, C<ssizetype>, C<startperl>,
-C<startsh>, C<static_ext>, C<stdchar>, C<stdio_base>, C<stdio_bufsiz>,
-C<stdio_cnt>, C<stdio_filbuf>, C<stdio_ptr>, C<stdio_stream_array>,
-C<strerror_r_proto>, C<strings>, C<submit>, C<subversion>, C<sysman>
+C<sitebinexp>, C<sitehtml1dir>, C<sitehtml1direxp>, C<sitehtml3dir>,
+C<sitehtml3direxp>, C<sitelib>, C<sitelib_stem>, C<sitelibexp>,
+C<siteman1dir>, C<siteman1direxp>, C<siteman3dir>, C<siteman3direxp>,
+C<siteprefix>, C<siteprefixexp>, C<sitescript>, C<sitescriptexp>,
+C<sizesize>, C<sizetype>, C<sleep>, C<smail>, C<so>, C<sockethdr>,
+C<socketlib>, C<socksizetype>, C<sort>, C<spackage>, C<spitshell>,
+C<sPRId64>, C<sPRIeldbl>, C<sPRIEUldbl>, C<sPRIfldbl>, C<sPRIFUldbl>,
+C<sPRIgldbl>, C<sPRIGUldbl>, C<sPRIi64>, C<sPRIo64>, C<sPRIu64>,
+C<sPRIx64>, C<sPRIXU64>, C<srand48_r_proto>, C<srandom_r_proto>, C<src>,
+C<sSCNfldbl>, C<ssizetype>, C<startperl>, C<startsh>, C<static_ext>,
+C<stdchar>, C<stdio_base>, C<stdio_bufsiz>, C<stdio_cnt>, C<stdio_filbuf>,
+C<stdio_ptr>, C<stdio_stream_array>, C<strerror_r_proto>, C<strings>,
+C<submit>, C<subversion>, C<sysman>
 
 =item t
@@ -10801,16 +11503,20 @@
 C<u8size>, C<u8type>, C<uidformat>, C<uidsign>, C<uidsize>, C<uidtype>,
 C<uname>, C<uniq>, C<uquadtype>, C<use5005threads>, C<use64bitall>,
-C<use64bitint>, C<usecrosscompile>, C<usedl>, C<useithreads>,
-C<uselargefiles>, C<uselongdouble>, C<usemorebits>, C<usemultiplicity>,
-C<usemymalloc>, C<usenm>, C<useopcode>, C<useperlio>, C<useposix>,
-C<usereentrant>, C<usesfio>, C<useshrplib>, C<usesocks>, C<usethreads>,
-C<usevendorprefix>, C<usevfork>, C<usrinc>, C<uuname>, C<uvoformat>,
-C<uvsize>, C<uvtype>, C<uvuformat>, C<uvxformat>, C<uvXUformat>
+C<use64bitint>, C<usecrosscompile>, C<usedl>, C<usefaststdio>,
+C<useithreads>, C<uselargefiles>, C<uselongdouble>, C<usemorebits>,
+C<usemultiplicity>, C<usemymalloc>, C<usenm>, C<useopcode>, C<useperlio>,
+C<useposix>, C<usereentrant>, C<usesfio>, C<useshrplib>, C<usesocks>,
+C<usethreads>, C<usevendorprefix>, C<usevfork>, C<usrinc>, C<uuname>,
+C<uvoformat>, C<uvsize>, C<uvtype>, C<uvuformat>, C<uvxformat>,
+C<uvXUformat>
 
 =item v
 
 C<vendorarch>, C<vendorarchexp>, C<vendorbin>, C<vendorbinexp>,
-C<vendorlib>, C<vendorlib_stem>, C<vendorlibexp>, C<vendorprefix>,
-C<vendorprefixexp>, C<version>, C<version_patchlevel_string>,
+C<vendorhtml1dir>, C<vendorhtml1direxp>, C<vendorhtml3dir>,
+C<vendorhtml3direxp>, C<vendorlib>, C<vendorlib_stem>, C<vendorlibexp>,
+C<vendorman1dir>, C<vendorman1direxp>, C<vendorman3dir>,
+C<vendorman3direxp>, C<vendorprefix>, C<vendorprefixexp>, C<vendorscript>,
+C<vendorscriptexp>, C<version>, C<version_patchlevel_string>,
 C<versiononly>, C<vi>, C<voidflags>
 
@@ -11058,20 +11764,4 @@
 =item Configuration Variables or Methods
 
-$Data::Dumper::Indent  I<or>  I<$OBJ>->Indent(I<[NEWVAL]>),
-$Data::Dumper::Purity  I<or>  I<$OBJ>->Purity(I<[NEWVAL]>),
-$Data::Dumper::Pad  I<or>  I<$OBJ>->Pad(I<[NEWVAL]>),
-$Data::Dumper::Varname	I<or>  I<$OBJ>->Varname(I<[NEWVAL]>),
-$Data::Dumper::Useqq  I<or>  I<$OBJ>->Useqq(I<[NEWVAL]>),
-$Data::Dumper::Terse  I<or>  I<$OBJ>->Terse(I<[NEWVAL]>),
-$Data::Dumper::Freezer	I<or>  $I<OBJ>->Freezer(I<[NEWVAL]>),
-$Data::Dumper::Toaster	I<or>  $I<OBJ>->Toaster(I<[NEWVAL]>),
-$Data::Dumper::Deepcopy  I<or>	$I<OBJ>->Deepcopy(I<[NEWVAL]>),
-$Data::Dumper::Quotekeys  I<or>  $I<OBJ>->Quotekeys(I<[NEWVAL]>),
-$Data::Dumper::Bless  I<or>  $I<OBJ>->Bless(I<[NEWVAL]>),
-$Data::Dumper::Maxdepth  I<or>	$I<OBJ>->Maxdepth(I<[NEWVAL]>),
-$Data::Dumper::Useperl	I<or>  $I<OBJ>->Useperl(I<[NEWVAL]>),
-$Data::Dumper::Sortkeys  I<or>	$I<OBJ>->Sortkeys(I<[NEWVAL]>),
-$Data::Dumper::Deparse	I<or>  $I<OBJ>->Deparse(I<[NEWVAL]>)
-
 =item Exports
 
@@ -11084,4 +11774,10 @@
 =item BUGS
 
+=over 4
+
+=item NOTE
+
+=back
+
 =item AUTHOR
 
@@ -11112,5 +11808,5 @@
 =back
 
-=head2 Devel::PPPort, Perl/Pollution/Portability
+=head2 Devel::PPPort - Perl/Pollution/Portability
 
 =over 4
@@ -11194,5 +11890,5 @@
 =back
 
-=head2 Digest:: - Modules that calculate message digests
+=head2 Digest - Modules that calculate message digests
 
 =over 4
@@ -11207,6 +11903,10 @@
 
 $ctx = Digest->XXX($arg,...), $ctx = Digest->new(XXX => $arg,...), $ctx =
-Digest::XXX->new($arg,...), $ctx->reset, $ctx->add($data,...),
-$ctx->addfile($io_handle), $ctx->digest, $ctx->hexdigest, $ctx->b64digest
+Digest::XXX->new($arg,...), $other_ctx = $ctx->clone, $ctx->reset,
+$ctx->add( $data, ... ), $ctx->addfile( $io_handle ), $ctx->add_bits(
+$data, $nbits ), $ctx->add_bits( $bitstring ), $ctx->digest,
+$ctx->hexdigest, $ctx->b64digest
+
+=item Digest speed
 
 =item SEE ALSO
@@ -11230,6 +11930,7 @@
 =item METHODS
 
-$md5 = Digest::MD5->new, $md5->reset, $md5->add($data,...),
-$md5->addfile($io_handle), $md5->digest, $md5->hexdigest, $md5->b64digest
+$md5 = Digest::MD5->new, $md5->reset, $md5->clone, $md5->add($data,...),
+$md5->addfile($io_handle), $md5->add_bits($data, $nbits),
+$md5->add_bits($bitstring), $md5->digest, $md5->hexdigest, $md5->b64digest
 
 =item EXAMPLES
@@ -11240,4 +11941,16 @@
 
 =item AUTHORS
+
+=back
+
+=head2 Digest::base - Digest base class
+
+=over 4
+
+=item SYNPOSIS
+
+=item DESCRIPTION
+
+=item SEE ALSO
 
 =back
@@ -11291,5 +12004,5 @@
 @dl_library_path, @dl_resolve_using, @dl_require_symbols, @dl_librefs,
 @dl_modules, dl_error(), $dl_debug, dl_findfile(), dl_expandspec(),
-dl_load_file(), dl_unload_file(), dl_loadflags(), dl_find_symbol(),
+dl_load_file(), dl_unload_file(), dl_load_flags(), dl_find_symbol(),
 dl_find_symbol_anywhere(), dl_undef_symbols(), dl_install_xsub(),
 bootstrap()
@@ -11307,4 +12020,22 @@
 
 =item DESCRIPTION
+
+=over 4
+
+=item Migration from C<DynaLoader>
+
+=item Backward compatible boilerplate
+
+=back
+
+=item Order of initialization: early load()
+
+=over 4
+
+=item The most hairy case
+
+=back
+
+=item LIMITATIONS
 
 =item AUTHOR
@@ -11418,5 +12149,5 @@
 =back
 
-=head2	 Encode::CJKConstants -- Internally used by Encode::??::ISO_2022_*
+=head2 Encode::CJKConstants -- Internally used by Encode::??::ISO_2022_*
 
 =head2 Encode::CN - China-based Chinese Encodings
@@ -11466,9 +12197,10 @@
 =item Methods you should implement
 
--E<gt>encode($string [,$check]), -E<gt>decode($octets [,$check])
+-E<gt>encode($string [,$check]), -E<gt>decode($octets [,$check]),
+-E<gt>cat_decode($destination, $octets, $offset, $terminator [,$check])
 
 =item Other methods defined in Encode::Encodings
 
--E<gt>name, -E<gt>new_sequence, -E<gt>perlio_ok(), -E<gt>needs_lines()
+-E<gt>name, -E<gt>renew, -E<gt>perlio_ok(), -E<gt>needs_lines()
 
 =item Example: Encode::ROT13
@@ -11574,9 +12306,7 @@
 =item How does it work?
 
-=item BUGS
-
-=over 4
-
-=item Workaround
+=item Line Buffering
+
+=over 4
 
 =item How can I tell whether my encoding fully supports PerlIO ?
@@ -11730,4 +12460,18 @@
 =back
 
+=head2 Encode::Unicode::UTF7 -- UTF-7 encoding
+
+=over 4
+
+=item SYNOPSIS
+
+=item ABSTRACT
+
+=item In Practice
+
+=item SEE ALSO
+
+=back
+
 =head2 Encode::lib::Encode::Alias, Encode::Alias - alias definitions to
 encodings
@@ -11752,5 +12496,5 @@
 =back
 
-=head2 Encode::lib::Encode::CJKConstants,   Encode::CJKConstants.pm --
+=head2 Encode::lib::Encode::CJKConstants, Encode::CJKConstants.pm --
 Internally used by Encode::??::ISO_2022_*
 
@@ -11774,9 +12518,10 @@
 =item Methods you should implement
 
--E<gt>encode($string [,$check]), -E<gt>decode($octets [,$check])
+-E<gt>encode($string [,$check]), -E<gt>decode($octets [,$check]),
+-E<gt>cat_decode($destination, $octets, $offset, $terminator [,$check])
 
 =item Other methods defined in Encode::Encodings
 
--E<gt>name, -E<gt>new_sequence, -E<gt>perlio_ok(), -E<gt>needs_lines()
+-E<gt>name, -E<gt>renew, -E<gt>perlio_ok(), -E<gt>needs_lines()
 
 =item Example: Encode::ROT13
@@ -11856,9 +12601,7 @@
 =item How does it work?
 
-=item BUGS
-
-=over 4
-
-=item Workaround
+=item Line Buffering
+
+=over 4
 
 =item How can I tell whether my encoding fully supports PerlIO ?
@@ -11955,4 +12698,19 @@
 =back
 
+=head2 Encode::lib::Encode::Unicode::UTF7, Encode::Unicode::UTF7 -- UTF-7
+encoding
+
+=over 4
+
+=item SYNOPSIS
+
+=item ABSTRACT
+
+=item In Practice
+
+=item SEE ALSO
+
+=back
+
 =head2 Encode::lib::Encoder, Encode::Encoder -- Object Oriented Encoder
 
@@ -11960,19 +12718,4 @@
 
 =item SYNOPSIS
-
-  use Encode::Encoder;
-  # Encode::encode("ISO-8859-1", $data); 
-  Encode::Encoder->new($data)->iso_8859_1; # OOP way
-  # shortcut
-  use Encode::Encoder qw(encoder);
-  encoder($data)->iso_8859_1;
-  # you can stack them!
-  encoder($data)->iso_8859_1->base64;  # provided base64() is defined
-  # you can use it as a decoder as well
-  encoder($base64)->bytes('base64')->latin1;
-  # stringified
-  print encoder($data)->utf8->latin1;  # prints the string in latin1
-  # numified
-  encoder("\x{abcd}\x{ef}g")->utf8 == 6; # true. bytes::length($data)
 
 =item ABSTRACT
@@ -12007,8 +12750,30 @@
 =item ABSTRACT
 
+=over 4
+
+=item Literal Conversions
+
+=item PerlIO layers for C<STD(IN|OUT)>
+
+=item Implicit upgrading for byte strings
+
+=back
+
+=item FEATURES THAT REQUIRE 5.8.1
+
+"NON-EUC" doublebyte encodings, tr//, DATA pseudo-filehandle
+
 =item USAGE
 
 use encoding [I<ENCNAME>] ;, use encoding I<ENCNAME> [ STDIN =E<gt>
-I<ENCNAME_IN> ...] ;, no encoding;
+I<ENCNAME_IN> ...] ;, use encoding I<ENCNAME> Filter=E<gt>1;, no encoding;
+
+=item The Filter Option
+
+=over 4
+
+=item Filter-related changes at Encode version 1.87
+
+=back
 
 =item CAVEATS
@@ -12020,9 +12785,9 @@
 =item DO NOT MIX MULTIPLE ENCODINGS
 
-=back
-
-=item Non-ASCII Identifiers and Filter option
-
-use encoding I<ENCNAME> Filter=E<gt>1;
+=item tr/// with ranges
+
+Legend of characters above
+
+=back
 
 =item EXAMPLE - Greekperl
@@ -12030,4 +12795,8 @@
 =item KNOWN PROBLEMS
 
+literals in regex that are longer than 127 bytes, EBCDIC, format
+
+=item HISTORY
+
 =item SEE ALSO
 
@@ -12039,19 +12808,4 @@
 
 =item SYNOPSIS
-
-  use Encode::Encoder;
-  # Encode::encode("ISO-8859-1", $data); 
-  Encode::Encoder->new($data)->iso_8859_1; # OOP way
-  # shortcut
-  use Encode::Encoder qw(encoder);
-  encoder($data)->iso_8859_1;
-  # you can stack them!
-  encoder($data)->iso_8859_1->base64;  # provided base64() is defined
-  # you can use it as a decoder as well
-  encoder($base64)->bytes('base64')->latin1;
-  # stringified
-  print encoder($data)->utf8->latin1;  # prints the string in latin1
-  # numified
-  encoder("\x{abcd}\x{ef}g")->utf8 == 6; # true. bytes::length($data)
 
 =item ABSTRACT
@@ -12149,4 +12903,6 @@
 =item Exporting without using Exporter's import method
 
+=item Exporting without inheriting from Exporter
+
 =item Module Version Checking
 
@@ -12226,4 +12982,12 @@
 =back
 
+B<pod2man>
+
+B<warn_if_old_packlist>
+
+B<perllocal_install>
+
+B<uninstall>
+
 =head2 ExtUtils::Constant - generate XS code to import C header constants
 
@@ -12311,4 +13075,32 @@
 =item DESCRIPTION
 
+=over 4
+
+=item Functions
+
+B<install>
+
+=back
+
+=back
+
+B<install_default> I<DISCOURAGED>
+
+B<uninstall>
+
+B<pm_to_blib>
+
+_autosplit
+
+=over 4
+
+=item ENVIRONMENT
+
+B<PERL_INSTALL_ROOT>
+
+=item AUTHOR
+
+=item LICENSE
+
 =back
 
@@ -12379,5 +13171,5 @@
 =back
 
-=head2 ExtUtils::MM_Any - Platform agnostic MM methods
+=head2 ExtUtils::MM_Any - Platform-agnostic MM methods
 
 =over 4
@@ -12389,27 +13181,17 @@
 =item Inherently Cross-Platform Methods
 
-=over 4
-
-=item File::Spec wrappers  B<DEPRECATED>
-
-canonpath
-
-=back
-
-=back
-
-catdir
+installvars
+
+=back
+
+os_flavor_is
+
+=over 4
+
+=item File::Spec wrappers
 
 catfile
 
-curdir
-
-file_name_is_absolute
-
-path
-
-rootdir
-
-updir
+=back
 
 =over 4
@@ -12417,9 +13199,49 @@
 =item Thought To Be Cross-Platform Methods
 
+B<split_command>
+
+=back
+
+B<echo>
+
+init_VERSION
+
+wraplist
+
+manifypods
+
+manifypods_target
+
+makemakerdflt_target
+
+special_targets
+
+POD2MAN_macro
+
 test_via_harness
 
-=back
-
 test_via_script
+
+libscan
+
+tool_autosplit
+
+all_target
+
+metafile_target
+
+metafile_addtomanifest_target
+
+=over 4
+
+=item Abstract methods
+
+oneliner, B<quote_literal>, B<escape_newlines>, max_exec_len,
+B<init_others>, init_DIRFILESEP, init_linker, init_platform,
+platform_constants
+
+=back
+
+os_flavor
 
 =over 4
@@ -12440,5 +13262,7 @@
 =back
 
-perl_archive
+os_flavor (o)
+
+init_linker
 
 =head2 ExtUtils::MM_Cygwin - methods to override UN*X behaviour in
@@ -12451,7 +13275,13 @@
 =item DESCRIPTION
 
-canonpath, cflags, manifypods, perl_archive
-
-=back
+os_flavor (o)
+
+=back
+
+cflags (o)
+
+replace_manpage_separator (o)
+
+init_linker
 
 =head2 ExtUtils::MM_DOS - DOS specific subclass of ExtUtils::MM_Unix
@@ -12467,9 +13297,11 @@
 =item Overridden methods
 
+os_flavor
+
+=back
+
+=back
+
 B<replace_manpage_separator>
-
-=back
-
-=back
 
 =over 4
@@ -12504,9 +13336,11 @@
 init_others
 
+init_platform, platform_constants
+
 init_dirscan
 
-libscan (o)
-
-constants (o)
+init_VERSION (o)
+
+special_targets (o)
 
 static (o)
@@ -12518,9 +13352,15 @@
 clean (o)
 
+clean_subdirs_target
+
 realclean (o)
 
+realclean_subdirs_target
+
 rulez (o)
 
 processPL (o)
+
+os_flavor
 
 =head2 ExtUtils::MM_NW5 - methods to override UN*X behaviour in
@@ -12535,5 +13375,9 @@
 =back
 
-constants (o)
+os_flavor
+
+init_platform (o), platform_constants
+
+const_cccmd (o)
 
 static_lib (o)
@@ -12552,7 +13396,11 @@
 =item METHODS
 
-=back
-
-perl_archive_after
+init_dist (o)
+
+=back
+
+init_linker
+
+os_flavor
 
 =head2 ExtUtils::MM_UWIN - U/WIN specific subclass of ExtUtils::MM_Unix
@@ -12568,10 +13416,12 @@
 =item Overridden methods
 
+os_flavor
+
+=back
+
+=back
+
 B<replace_manpage_separator>
 
-=back
-
-=back
-
 =over 4
 
@@ -12596,14 +13446,18 @@
 =over 4
 
-=item SelfLoaded methods
+=item Methods
+
+os_flavor (o)
+
+=back
 
 c_o (o)
 
-=back
-
 cflags (o)
 
 clean (o)
 
+clean_subdirs_target
+
 const_cccmd (o)
 
@@ -12618,4 +13472,8 @@
 dir_target (o)
 
+init_DEST
+
+init_dist
+
 dist (o)
 
@@ -12626,5 +13484,19 @@
 dist_core (o)
 
-dist_dir
+B<dist_target>
+
+B<tardist_target>
+
+B<zipdist_target>
+
+B<tarfile_target>
+
+zipfile_target
+
+uutardist_target
+
+shdist_target
+
+distdir
 
 dist_test
@@ -12662,4 +13534,6 @@
 init_dirscan
 
+init_DIRFILESEP
+
 init_main
 
@@ -12670,16 +13544,20 @@
 init_INSTALL
 
+init_linker
+
 init_lib2arch
 
 init_PERL
 
+init_platform (o), platform_constants (o)
+
 init_PERM
 
+init_xs
+
 install (o)
 
 installbin (o)
 
-libscan (o)
-
 linkext (o)
 
@@ -12692,10 +13570,6 @@
 makefile (o)
 
-manifypods (o)
-
 maybe_command
 
-maybe_command_in_dirs
-
 needs_linking (o)
 
@@ -12734,6 +13608,16 @@
 realclean (o)
 
+realclean_subdirs_target
+
 replace_manpage_separator
 
+oneliner (o)
+
+quote_literal
+
+escape_newlines
+
+max_exec_len
+
 static (o)
 
@@ -12752,10 +13636,10 @@
 test_via_script (override)
 
-tool_autosplit (o)
-
 tools_other (o)
 
 tool_xsubpp (o)
 
+all_target
+
 top_targets (o)
 
@@ -12767,10 +13651,4 @@
 
 xs_o (o)
-
-perl_archive
-
-perl_archive_after
-
-export_list
 
 =over 4
@@ -12811,31 +13689,35 @@
 maybe_command (override)
 
-maybe_command_in_dirs (override)
-
 perl_script (override)
 
 replace_manpage_separator
 
+init_DEST
+
+init_DIRFILESEP
+
 init_main (override)
 
 init_others (override)
 
+init_platform (override)
+
+platform_constants
+
+init_VERSION (override)
+
 constants (override)
 
+special_targets
+
 cflags (override)
 
 const_cccmd (override)
 
-pm_to_blib (override)
-
-tool_autosplit (override)
-
 tool_sxubpp (override)
 
-xsubpp_version (override)
-
 tools_other (override)
 
-dist (override)
+init_dist (override)
 
 c_o (override)
@@ -12845,6 +13727,4 @@
 xs_o (override)
 
-top_targets (override)
-
 dlsyms (override)
 
@@ -12855,6 +13735,4 @@
 static_lib (override)
 
-manifypods (override)
-
 processPL (override)
 
@@ -12865,7 +13743,9 @@
 clean (override)
 
+clean_subdirs_target
+
 realclean (override)
 
-dist_core (override)
+zipfile_target (o), tarfile_target (o), shdist_target (o)
 
 dist_test (override)
@@ -12886,4 +13766,22 @@
 
 prefixify (override)
+
+oneliner (o)
+
+B<echo> (o)
+
+quote_literal
+
+escape_newlines
+
+max_exec_len
+
+init_linker (o)
+
+eliminate_macros
+
+fixpath
+
+os_flavor
 
 =head2 ExtUtils::MM_Win32 - methods to override UN*X behaviour in
@@ -12898,32 +13796,46 @@
 =back
 
-constants (o)
+=over 4
+
+=item Overridden methods
+
+B<dlsyms>
+
+=back
+
+replace_manpage_separator
+
+B<maybe_command>
+
+B<find_tests>
+
+B<init_DIRFILESEP>
+
+B<init_others>
+
+init_platform (o), platform_constants (o)
+
+special_targets (o)
 
 static_lib (o)
 
-dynamic_bs (o)
-
 dynamic_lib (o)
 
+clean
+
+init_linker
+
 perl_script
 
-pm_to_blib
-
-tool_autosplit (override)
-
-tools_other (o)
-
 xs_o (o)
 
-top_targets (o)
-
-manifypods (o)
-
-dist_ci (o)
-
-dist_core (o)
-
 pasthru (o)
 
+oneliner (o)
+
+max_exec_len
+
+os_flavor
+
 =head2 ExtUtils::MM_Win95 - method to customize MakeMaker for Win9X
 
@@ -12934,4 +13846,32 @@
 =item DESCRIPTION
 
+=over 4
+
+=item Overriden methods
+
+dist_test
+
+=back
+
+=back
+
+subdir_x
+
+xs_c
+
+xs_cpp
+
+xs_o
+
+clean_subdirs_target
+
+realclean_subdirs_target
+
+os_flavor
+
+=over 4
+
+=item AUTHOR
+
 =back
 
@@ -12946,5 +13886,5 @@
 =back
 
-=head2 ExtUtils::MakeMaker - create an extension Makefile
+=head2 ExtUtils::MakeMaker - Create a module Makefile
 
 =over 4
@@ -12979,25 +13919,26 @@
 
 ABSTRACT, ABSTRACT_FROM, AUTHOR, BINARY_LOCATION, C, CCFLAGS, CONFIG,
-CONFIGURE, DEFINE, DIR, DISTNAME, DL_FUNCS, DL_VARS, EXCLUDE_EXT,
-EXE_FILES, FIRST_MAKEFILE, FULLPERL, FULLPERLRUN, FULLPERLRUNINST,
-FUNCLIST, H, IMPORTS, INC, INCLUDE_EXT, INSTALLARCHLIB, INSTALLBIN,
-INSTALLDIRS, INSTALLMAN1DIR, INSTALLMAN3DIR, INSTALLPRIVLIB, INSTALLSCRIPT,
-INSTALLSITEARCH, INSTALLSITEBIN, INSTALLSITELIB, INSTALLSITEMAN1DIR,
-INSTALLSITEMAN3DIR, INSTALLVENDORARCH, INSTALLVENDORBIN, INSTALLVENDORLIB,
-INSTALLVENDORMAN1DIR, INSTALLVENDORMAN3DIR, INST_ARCHLIB, INST_BIN,
-INST_LIB, INST_MAN1DIR, INST_MAN3DIR, INST_SCRIPT, LDDLFLAGS, LDFROM, LIB,
-LIBPERL_A, LIBS, LINKTYPE, MAKEAPERL, MAKEFILE, MAN1PODS, MAN3PODS,
-MAP_TARGET, MYEXTLIB, NAME, NEEDS_LINKING, NOECHO, NORECURS, NO_VC, OBJECT,
+CONFIGURE, DEFINE, DESTDIR, DIR, DISTNAME, DISTVNAME, DL_FUNCS, DL_VARS,
+EXCLUDE_EXT, EXE_FILES, FIRST_MAKEFILE, FULLPERL, FULLPERLRUN,
+FULLPERLRUNINST, FUNCLIST, H, IMPORTS, INC, INCLUDE_EXT, INSTALLARCHLIB,
+INSTALLBIN, INSTALLDIRS, INSTALLMAN1DIR, INSTALLMAN3DIR, INSTALLPRIVLIB,
+INSTALLSCRIPT, INSTALLSITEARCH, INSTALLSITEBIN, INSTALLSITELIB,
+INSTALLSITEMAN1DIR, INSTALLSITEMAN3DIR, INSTALLVENDORARCH,
+INSTALLVENDORBIN, INSTALLVENDORLIB, INSTALLVENDORMAN1DIR,
+INSTALLVENDORMAN3DIR, INST_ARCHLIB, INST_BIN, INST_LIB, INST_MAN1DIR,
+INST_MAN3DIR, INST_SCRIPT, LD, LDDLFLAGS, LDFROM, LIB, LIBPERL_A, LIBS,
+LINKTYPE, MAKEAPERL, MAKEFILE_OLD, MAN1PODS, MAN3PODS, MAP_TARGET,
+MYEXTLIB, NAME, NEEDS_LINKING, NOECHO, NORECURS, NO_META, NO_VC, OBJECT,
 OPTIMIZE, PERL, PERL_CORE, PERLMAINCC, PERL_ARCHLIB, PERL_LIB,
-PERL_MALLOC_OK, PERLRUN, PERLRUNINST, PERL_SRC, PERM_RW, PERM_RWX,
-PL_FILES, PM, PMLIBDIRS, PM_FILTER, POLLUTE, PPM_INSTALL_EXEC,
+PERL_MALLOC_OK, PERLPREFIX, PERLRUN, PERLRUNINST, PERL_SRC, PERM_RW,
+PERM_RWX, PL_FILES, PM, PMLIBDIRS, PM_FILTER, POLLUTE, PPM_INSTALL_EXEC,
 PPM_INSTALL_SCRIPT, PREFIX, PREREQ_FATAL, PREREQ_PM, PREREQ_PRINT,
 PRINT_PREREQ, SITEPREFIX, SKIP, TYPEMAPS, VENDORPREFIX, VERBINST, VERSION,
-VERSION_FROM, XS, XSOPT, XSPROTOARG, XS_VERSION
+VERSION_FROM, VERSION_SYM, XS, XSOPT, XSPROTOARG, XS_VERSION
 
 =item Additional lowercase attributes
 
-clean, depend, dist, dynamic_lib, linkext, macro, realclean, test,
-tool_autosplit
+clean, depend, dist, dynamic_lib, linkext, macro, postamble, realclean,
+test, tool_autosplit
 
 =item Overriding MakeMaker Methods
@@ -13015,6 +13956,12 @@
 uutardist,    make shdist,    make zipdist,    make ci
 
+=item Module Meta-Data
+
 =item Disabling an extension
 
+=item Other Handy Functions
+
+prompt
+
 =back
 
@@ -13027,4 +13974,85 @@
 =item AUTHORS
 
+=item LICENSE
+
+=back
+
+=head2 ExtUtils::MakeMaker::FAQ - Frequently Asked Questions About
+MakeMaker
+
+=over 4
+
+=item DESCRIPTION
+
+=over 4
+
+=item Philosophy and History
+
+Why not just use <insert other build config tool here>?, What's
+Module::Build and how does it relate to MakeMaker?, pure perl.	no make, no
+shell commands, easier to customize, cleaner internals, less cruft
+
+=item Module Writing
+
+How do I keep my $VERSION up to date without resetting it manually?, What's
+this F<META.yml> thing and how did it get in my F<MANIFEST>?!
+
+=item XS
+
+How to I prevent "object version X.XX does not match bootstrap parameter
+Y.YY" errors?, How do I make two or more XS files coexist in the same
+directory?
+
+=back
+
+=item PATCHING
+
+=item AUTHOR
+
+=item SEE ALSO
+
+=back
+
+=head2 ExtUtils::MakeMaker::Tutorial - Writing a module with MakeMaker
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over 4
+
+=item The Mantra
+
+=item The Layout
+
+Makefile.PL, MANIFEST, lib/, t/, Changes, README, INSTALL, MANIFEST.SKIP,
+bin/
+
+=back
+
+=item SEE ALSO
+
+=back
+
+=head2 ExtUtils::MakeMaker::bytes - Version agnostic bytes.pm
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=back
+
+=head2 ExtUtils::MakeMaker::vmsish - Platform agnostic vmsish.pm
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
 =back
 
@@ -13037,4 +14065,34 @@
 =item DESCRIPTION
 
+=over 4
+
+=item Functions
+
+mkmanifest
+
+=back
+
+=back
+
+manifind
+
+manicheck
+
+filecheck
+
+fullcheck
+
+skipcheck
+
+maniread
+
+manicopy
+
+maniadd
+
+=over 4
+
+=item MANIFEST
+
 =item MANIFEST.SKIP
 
@@ -13042,4 +14100,8 @@
 
 =item GLOBAL VARIABLES
+
+=back
+
+=over 4
 
 =item DIAGNOSTICS
@@ -13311,4 +14373,6 @@
 =item DESCRIPTION
 
+=item DIAGNOSTICS
+
 =item AUTHORS
 
@@ -13345,4 +14409,10 @@
 =back
 
+canonpath
+
+file_name_is_absolute
+
+tmpdir (override)
+
 =head2 File::Spec::Epoc - methods for Epoc file specs
 
@@ -13353,8 +14423,10 @@
 =item DESCRIPTION
 
+=item AUTHORS
+
+=back
+
 canonpath()
 
-=back
-
 =over 4
 
@@ -13431,12 +14503,4 @@
 =back
 
-canonpath
-
-splitpath
-
-splitdir
-
-catpath
-
 =head2 File::Spec::OS2 - methods for OS/2 file specs
 
@@ -13446,4 +14510,6 @@
 
 =item DESCRIPTION
+
+tmpdir, splitpath
 
 =back
@@ -13612,4 +14678,16 @@
 =over 4
 
+=item OO INTERFACE
+
+B<new>
+
+=back
+
+B<filename>
+
+B<DESTROY>
+
+=over 4
+
 =item FUNCTIONS
 
@@ -13660,4 +14738,8 @@
 =back
 
+B<cmpstat>
+
+B<unlink1>
+
 =over 4
 
@@ -13717,4 +14799,6 @@
 
 =item BUGS
+
+=item NOTES
 
 =back
@@ -13921,7 +15005,12 @@
 require_order, permute, bundling (default: disabled), bundling_override
 (default: disabled), ignore_case  (default: enabled), ignore_case_always
-(default: disabled), pass_through (default: disabled), prefix,
+(default: disabled), auto_version (default:disabled), auto_help
+(default:disabled), pass_through (default: disabled), prefix,
 prefix_pattern, debug (default: disabled)
 
+=item Exportable Methods
+
+VersionMessage, C<-message>, C<-msg>, C<-exitval>, C<-output>, HelpMessage
+
 =item Return values and Errors
 
@@ -13941,6 +15030,4 @@
 
 =over 4
-
-=item Warning: Ignoring '!' modifier for short option
 
 =item GetOptions does not return a false result when an option is not
@@ -13949,4 +15036,6 @@
 =item GetOptions does not split the command line correctly
 
+=item Undefined subroutine &main::GetOptions called
+
 =item How do I put a "-?" option into a Getopt::Long?
 
@@ -13959,12 +15048,14 @@
 =back
 
-=head2 Getopt::Std, getopt - Process single-character switches with switch
-clustering
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
+=head2 Getopt::Std, getopt, getopts - Process single-character switches
+with switch clustering
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item C<--help> and C<--version>
 
 =back
@@ -13992,5 +15083,9 @@
 B<lock_hash>, B<unlock_hash>
 
-=over 4
+B<hash_seed>
+
+=over 4
+
+=item CAVEATS
 
 =item AUTHOR
@@ -14068,86 +15163,91 @@
 =item LIST OF LANGUAGES
 
-{ab} : Abkhazian, {ace} : Achinese, {ach} : Acoli, {ada} : Adangme, {aa} :
-Afar, {afh} : Afrihili, {af} : Afrikaans, [{afa} : Afro-Asiatic (Other)],
-{aka} : Akan, {akk} : Akkadian, {sq} : Albanian, {ale} : Aleut, [{alg} :
-Algonquian languages], [{tut} : Altaic (Other)], {am} : Amharic, {i-ami} :
-Ami, [{apa} : Apache languages], {ar} : Arabic, {arc} : Aramaic, {arp} :
-Arapaho, {arn} : Araucanian, {arw} : Arawak, {hy} : Armenian, [{art} :
-Artificial (Other)], {as} : Assamese, [{ath} : Athapascan languages],
-[{aus} : Australian languages], [{map} : Austronesian (Other)], {ava} :
-Avaric, {ae} : Avestan, {awa} : Awadhi, {ay} : Aymara, {az} : Azerbaijani,
-{ban} : Balinese, [{bat} : Baltic (Other)], {bal} : Baluchi, {bam} :
-Bambara, [{bai} : Bamileke languages], {bad} : Banda, [{bnt} : Bantu
-(Other)], {bas} : Basa, {ba} : Bashkir, {eu} : Basque, {btk} : Batak
-(Indonesia), {bej} : Beja, {be} : Belarusian, {bem} : Bemba, {bn} :
-Bengali, [{ber} : Berber (Other)], {bho} : Bhojpuri, {bh} : Bihari, {bik} :
-Bikol, {bin} : Bini, {bi} : Bislama, {bs} : Bosnian, {bra} : Braj, {br} :
-Breton, {bug} : Buginese, {bg} : Bulgarian, {i-bnn} : Bunun, {bua} :
-Buriat, {my} : Burmese, {cad} : Caddo, {car} : Carib, {ca} : Catalan,
-[{cau} : Caucasian (Other)], {ceb} : Cebuano, [{cel} : Celtic (Other)],
-[{cai} : Central American Indian (Other)], {chg} : Chagatai, [{cmc} :
-Chamic languages], {ch} : Chamorro, {ce} : Chechen, {chr} : Cherokee, {chy}
-: Cheyenne, {chb} : Chibcha, {ny} : Chichewa, {zh} : Chinese, {chn} :
-Chinook Jargon, {chp} : Chipewyan, {cho} : Choctaw, {cu} : Church Slavic,
-{chk} : Chuukese, {cv} : Chuvash, {cop} : Coptic, {kw} : Cornish, {co} :
-Corsican, {cre} : Cree, {mus} : Creek, [{cpe} : English-based Creoles and
-pidgins (Other)], [{cpf} : French-based Creoles and pidgins (Other)],
-[{cpp} : Portuguese-based Creoles and pidgins (Other)], [{crp} : Creoles
-and pidgins (Other)], {hr} : Croatian, [{cus} : Cushitic (Other)], {cs} :
-Czech, {dak} : Dakota, {da} : Danish, {day} : Dayak, {i-default} : Default
-(Fallthru) Language, {del} : Delaware, {din} : Dinka, {div} : Divehi, {doi}
-: Dogri, {dgr} : Dogrib, [{dra} : Dravidian (Other)], {dua} : Duala, {nl} :
-Dutch, {dum} : Middle Dutch (ca.1050-1350), {dyu} : Dyula, {dz} : Dzongkha,
-{efi} : Efik, {egy} : Ancient Egyptian, {eka} : Ekajuk, {elx} : Elamite,
-{en} : English, {enm} : Old English (1100-1500), {ang} : Old English
-(ca.450-1100), {eo} : Esperanto, {et} : Estonian, {ewe} : Ewe, {ewo} :
-Ewondo, {fan} : Fang, {fat} : Fanti, {fo} : Faroese, {fj} : Fijian, {fi} :
-Finnish, [{fiu} : Finno-Ugrian (Other)], {fon} : Fon, {fr} : French, {frm}
-: Middle French (ca.1400-1600), {fro} : Old French (842-ca.1400), {fy} :
-Frisian, {fur} : Friulian, {ful} : Fulah, {gaa} : Ga, {gd} : Scots Gaelic,
-{gl} : Gallegan, {lug} : Ganda, {gay} : Gayo, {gba} : Gbaya, {gez} : Geez,
-{ka} : Georgian, {de} : German, {gmh} : Middle High German (ca.1050-1500),
-{goh} : Old High German (ca.750-1050), [{gem} : Germanic (Other)], {gil} :
-Gilbertese, {gon} : Gondi, {gor} : Gorontalo, {got} : Gothic, {grb} :
-Grebo, {grc} : Ancient Greek, {el} : Modern Greek, {gn} : Guarani, {gu} :
-Gujarati, {gwi} : Gwich'in, {hai} : Haida, {ha} : Hausa, {haw} : Hawaiian,
+{ab} : Abkhazian, {ace} : Achinese, {ach} : Acoli, {ada} : Adangme, {ady} :
+Adyghe, {aa} : Afar, {afh} : Afrihili, {af} : Afrikaans, [{afa} :
+Afro-Asiatic (Other)], {ak} : Akan, {akk} : Akkadian, {sq} : Albanian,
+{ale} : Aleut, [{alg} : Algonquian languages], [{tut} : Altaic (Other)],
+{am} : Amharic, {i-ami} : Ami, [{apa} : Apache languages], {ar} : Arabic,
+{arc} : Aramaic, {arp} : Arapaho, {arn} : Araucanian, {arw} : Arawak, {hy}
+: Armenian, {an} : Aragonese, [{art} : Artificial (Other)], {ast} :
+Asturian, {as} : Assamese, [{ath} : Athapascan languages], [{aus} :
+Australian languages], [{map} : Austronesian (Other)], {av} : Avaric, {ae}
+: Avestan, {awa} : Awadhi, {ay} : Aymara, {az} : Azerbaijani, {ban} :
+Balinese, [{bat} : Baltic (Other)], {bal} : Baluchi, {bm} : Bambara, [{bai}
+: Bamileke languages], {bad} : Banda, [{bnt} : Bantu (Other)], {bas} :
+Basa, {ba} : Bashkir, {eu} : Basque, {btk} : Batak (Indonesia), {bej} :
+Beja, {be} : Belarusian, {bem} : Bemba, {bn} : Bengali, [{ber} : Berber
+(Other)], {bho} : Bhojpuri, {bh} : Bihari, {bik} : Bikol, {bin} : Bini,
+{bi} : Bislama, {bs} : Bosnian, {bra} : Braj, {br} : Breton, {bug} :
+Buginese, {bg} : Bulgarian, {i-bnn} : Bunun, {bua} : Buriat, {my} :
+Burmese, {cad} : Caddo, {car} : Carib, {ca} : Catalan, [{cau} : Caucasian
+(Other)], {ceb} : Cebuano, [{cel} : Celtic (Other)], [{cai} : Central
+American Indian (Other)], {chg} : Chagatai, [{cmc} : Chamic languages],
+{ch} : Chamorro, {ce} : Chechen, {chr} : Cherokee, {chy} : Cheyenne, {chb}
+: Chibcha, {ny} : Chichewa, {zh} : Chinese, {chn} : Chinook Jargon, {chp} :
+Chipewyan, {cho} : Choctaw, {cu} : Church Slavic, {chk} : Chuukese, {cv} :
+Chuvash, {cop} : Coptic, {kw} : Cornish, {co} : Corsican, {cr} : Cree,
+{mus} : Creek, [{cpe} : English-based Creoles and pidgins (Other)], [{cpf}
+: French-based Creoles and pidgins (Other)], [{cpp} : Portuguese-based
+Creoles and pidgins (Other)], [{crp} : Creoles and pidgins (Other)], {hr} :
+Croatian, [{cus} : Cushitic (Other)], {cs} : Czech, {dak} : Dakota, {da} :
+Danish, {dar} : Dargwa, {day} : Dayak, {i-default} : Default (Fallthru)
+Language, {del} : Delaware, {din} : Dinka, {dv} : Divehi, {doi} : Dogri,
+{dgr} : Dogrib, [{dra} : Dravidian (Other)], {dua} : Duala, {nl} : Dutch,
+{dum} : Middle Dutch (ca.1050-1350), {dyu} : Dyula, {dz} : Dzongkha, {efi}
+: Efik, {egy} : Ancient Egyptian, {eka} : Ekajuk, {elx} : Elamite, {en} :
+English, {enm} : Old English (1100-1500), {ang} : Old English
+(ca.450-1100), {i-enochian} : Enochian (Artificial), {myv} : Erzya, {eo} :
+Esperanto, {et} : Estonian, {ee} : Ewe, {ewo} : Ewondo, {fan} : Fang, {fat}
+: Fanti, {fo} : Faroese, {fj} : Fijian, {fi} : Finnish, [{fiu} :
+Finno-Ugrian (Other)], {fon} : Fon, {fr} : French, {frm} : Middle French
+(ca.1400-1600), {fro} : Old French (842-ca.1400), {fy} : Frisian, {fur} :
+Friulian, {ff} : Fulah, {gaa} : Ga, {gd} : Scots Gaelic, {gl} : Gallegan,
+{lg} : Ganda, {gay} : Gayo, {gba} : Gbaya, {gez} : Geez, {ka} : Georgian,
+{de} : German, {gmh} : Middle High German (ca.1050-1500), {goh} : Old High
+German (ca.750-1050), [{gem} : Germanic (Other)], {gil} : Gilbertese, {gon}
+: Gondi, {gor} : Gorontalo, {got} : Gothic, {grb} : Grebo, {grc} : Ancient
+Greek, {el} : Modern Greek, {gn} : Guarani, {gu} : Gujarati, {gwi} :
+Gwich'in, {hai} : Haida, {ht} : Haitian, {ha} : Hausa, {haw} : Hawaiian,
 {he} : Hebrew, {hz} : Herero, {hil} : Hiligaynon, {him} : Himachali, {hi} :
 Hindi, {ho} : Hiri Motu, {hit} : Hittite, {hmn} : Hmong, {hu} : Hungarian,
-{hup} : Hupa, {iba} : Iban, {is} : Icelandic, {ibo} : Igbo, {ijo} : Ijo,
-{ilo} : Iloko, [{inc} : Indic (Other)], [{ine} : Indo-European (Other)],
-{id} : Indonesian, {ia} : Interlingua (International Auxiliary Language
-Association), {ie} : Interlingue, {iu} : Inuktitut, {ik} : Inupiaq, [{ira}
-: Iranian (Other)], {ga} : Irish, {mga} : Middle Irish (900-1200), {sga} :
-Old Irish (to 900), [{iro} : Iroquoian languages], {it} : Italian, {ja} :
-Japanese, {jw} : Javanese, {jrb} : Judeo-Arabic, {jpr} : Judeo-Persian,
-{kab} : Kabyle, {kac} : Kachin, {kl} : Kalaallisut, {kam} : Kamba, {kn} :
-Kannada, {kau} : Kanuri, {kaa} : Kara-Kalpak, {kar} : Karen, {ks} :
-Kashmiri, {kaw} : Kawi, {kk} : Kazakh, {kha} : Khasi, {km} : Khmer, [{khi}
-: Khoisan (Other)], {kho} : Khotanese, {ki} : Kikuyu, {kmb} : Kimbundu,
-{rw} : Kinyarwanda, {ky} : Kirghiz, {i-klingon} : Klingon, {kv} : Komi,
-{kon} : Kongo, {kok} : Konkani, {ko} : Korean, {kos} : Kosraean, {kpe} :
-Kpelle, {kro} : Kru, {kj} : Kuanyama, {kum} : Kumyk, {ku} : Kurdish, {kru}
-: Kurukh, {kut} : Kutenai, {lad} : Ladino, {lah} : Lahnda, {lam} : Lamba,
-{lo} : Lao, {la} : Latin, {lv} : Latvian, {lb} : Letzeburgesch, {lez} :
-Lezghian, {ln} : Lingala, {lt} : Lithuanian, {nds} : Low German, {loz} :
-Lozi, {lub} : Luba-Katanga, {lua} : Luba-Lulua, {lui} : Luiseno, {lun} :
-Lunda, {luo} : Luo (Kenya and Tanzania), {lus} : Lushai, {mk} : Macedonian,
-{mad} : Madurese, {mag} : Magahi, {mai} : Maithili, {mak} : Makasar, {mg} :
-Malagasy, {ms} : Malay, {ml} : Malayalam, {mt} : Maltese, {mnc} : Manchu,
-{mdr} : Mandar, {man} : Mandingo, {mni} : Manipuri, [{mno} : Manobo
-languages], {gv} : Manx, {mi} : Maori, {mr} : Marathi, {chm} : Mari, {mh} :
-Marshall, {mwr} : Marwari, {mas} : Masai, [{myn} : Mayan languages], {men}
-: Mende, {mic} : Micmac, {min} : Minangkabau, {i-mingo} : Mingo, [{mis} :
-Miscellaneous languages], {moh} : Mohawk, {mo} : Moldavian, [{mkh} :
-Mon-Khmer (Other)], {lol} : Mongo, {mn} : Mongolian, {mos} : Mossi, [{mul}
-: Multiple languages], [{mun} : Munda languages], {nah} : Nahuatl, {na} :
-Nauru, {nv} : Navajo, {nd} : North Ndebele, {nr} : South Ndebele, {ng} :
-Ndonga, {ne} : Nepali, {new} : Newari, {nia} : Nias, [{nic} :
+{hup} : Hupa, {iba} : Iban, {is} : Icelandic, {io} : Ido, {ig} : Igbo,
+{ijo} : Ijo, {ilo} : Iloko, [{inc} : Indic (Other)], [{ine} : Indo-European
+(Other)], {id} : Indonesian, {inh} : Ingush, {ia} : Interlingua
+(International Auxiliary Language Association), {ie} : Interlingue, {iu} :
+Inuktitut, {ik} : Inupiaq, [{ira} : Iranian (Other)], {ga} : Irish, {mga} :
+Middle Irish (900-1200), {sga} : Old Irish (to 900), [{iro} : Iroquoian
+languages], {it} : Italian, {ja} : Japanese, {jv} : Javanese, {jrb} :
+Judeo-Arabic, {jpr} : Judeo-Persian, {kbd} : Kabardian, {kab} : Kabyle,
+{kac} : Kachin, {kl} : Kalaallisut, {xal} : Kalmyk, {kam} : Kamba, {kn} :
+Kannada, {kr} : Kanuri, {krc} : Karachay-Balkar, {kaa} : Kara-Kalpak, {kar}
+: Karen, {ks} : Kashmiri, {csb} : Kashubian, {kaw} : Kawi, {kk} : Kazakh,
+{kha} : Khasi, {km} : Khmer, [{khi} : Khoisan (Other)], {kho} : Khotanese,
+{ki} : Kikuyu, {kmb} : Kimbundu, {rw} : Kinyarwanda, {ky} : Kirghiz,
+{i-klingon} : Klingon, {kv} : Komi, {kg} : Kongo, {kok} : Konkani, {ko} :
+Korean, {kos} : Kosraean, {kpe} : Kpelle, {kro} : Kru, {kj} : Kuanyama,
+{kum} : Kumyk, {ku} : Kurdish, {kru} : Kurukh, {kut} : Kutenai, {lad} :
+Ladino, {lah} : Lahnda, {lam} : Lamba, {lo} : Lao, {la} : Latin, {lv} :
+Latvian, {lb} : Letzeburgesch, {lez} : Lezghian, {li} : Limburgish, {ln} :
+Lingala, {lt} : Lithuanian, {nds} : Low German, {art-lojban} : Lojban
+(Artificial), {loz} : Lozi, {lu} : Luba-Katanga, {lua} : Luba-Lulua, {lui}
+: Luiseno, {lun} : Lunda, {luo} : Luo (Kenya and Tanzania), {lus} : Lushai,
+{mk} : Macedonian, {mad} : Madurese, {mag} : Magahi, {mai} : Maithili,
+{mak} : Makasar, {mg} : Malagasy, {ms} : Malay, {ml} : Malayalam, {mt} :
+Maltese, {mnc} : Manchu, {mdr} : Mandar, {man} : Mandingo, {mni} :
+Manipuri, [{mno} : Manobo languages], {gv} : Manx, {mi} : Maori, {mr} :
+Marathi, {chm} : Mari, {mh} : Marshall, {mwr} : Marwari, {mas} : Masai,
+[{myn} : Mayan languages], {men} : Mende, {mic} : Micmac, {min} :
+Minangkabau, {i-mingo} : Mingo, [{mis} : Miscellaneous languages], {moh} :
+Mohawk, {mdf} : Moksha, {mo} : Moldavian, [{mkh} : Mon-Khmer (Other)],
+{lol} : Mongo, {mn} : Mongolian, {mos} : Mossi, [{mul} : Multiple
+languages], [{mun} : Munda languages], {nah} : Nahuatl, {nap} : Neapolitan,
+{na} : Nauru, {nv} : Navajo, {nd} : North Ndebele, {nr} : South Ndebele,
+{ng} : Ndonga, {ne} : Nepali, {new} : Newari, {nia} : Nias, [{nic} :
 Niger-Kordofanian (Other)], [{ssa} : Nilo-Saharan (Other)], {niu} : Niuean,
-{non} : Old Norse, [{nai} : North American Indian], {se} : Northern Sami,
-{no} : Norwegian, {nb} : Norwegian Bokmal, {nn} : Norwegian Nynorsk, [{nub}
-: Nubian languages], {nym} : Nyamwezi, {nyn} : Nyankole, {nyo} : Nyoro,
-{nzi} : Nzima, {oc} : Occitan (post 1500), {oji} : Ojibwa, {or} : Oriya,
-{om} : Oromo, {osa} : Osage, {os} : Ossetian; Ossetic, [{oto} : Otomian
+{nog} : Nogai, {non} : Old Norse, [{nai} : North American Indian], {no} :
+Norwegian, {nb} : Norwegian Bokmal, {nn} : Norwegian Nynorsk, [{nub} :
+Nubian languages], {nym} : Nyamwezi, {nyn} : Nyankole, {nyo} : Nyoro, {nzi}
+: Nzima, {oc} : Occitan (post 1500), {oj} : Ojibwa, {or} : Oriya, {om} :
+Oromo, {osa} : Osage, {os} : Ossetian; Ossetic, [{oto} : Otomian
 languages], {pal} : Pahlavi, {i-pwn} : Paiwan, {pau} : Palauan, {pi} :
 Pali, {pam} : Pampanga, {pag} : Pangasinan, {pa} : Panjabi, {pap} :
@@ -14159,32 +15259,35 @@
 [{qaa - qtz} : Reserved for local use.], [{roa} : Romance (Other)], {ro} :
 Romanian, {rom} : Romany, {rn} : Rundi, {ru} : Russian, [{sal} : Salishan
-languages], {sam} : Samaritan Aramaic, [{smi} : Sami languages (Other)],
-{sm} : Samoan, {sad} : Sandawe, {sg} : Sango, {sa} : Sanskrit, {sat} :
-Santali, {sc} : Sardinian, {sas} : Sasak, {sco} : Scots, {sel} : Selkup,
-[{sem} : Semitic (Other)], {sr} : Serbian, {srr} : Serer, {shn} : Shan,
-{sn} : Shona, {sid} : Sidamo, {sgn-...} : Sign Languages, {bla} : Siksika,
-{sd} : Sindhi, {si} : Sinhalese, [{sit} : Sino-Tibetan (Other)], [{sio} :
-Siouan languages], {den} : Slave (Athapascan), [{sla} : Slavic (Other)],
-{sk} : Slovak, {sl} : Slovenian, {sog} : Sogdian, {so} : Somali, {son} :
-Songhai, {snk} : Soninke, {wen} : Sorbian languages, {nso} : Northern
-Sotho, {st} : Southern Sotho, [{sai} : South American Indian (Other)], {es}
-: Spanish, {suk} : Sukuma, {sux} : Sumerian, {su} : Sundanese, {sus} :
-Susu, {sw} : Swahili, {ss} : Swati, {sv} : Swedish, {syr} : Syriac, {tl} :
-Tagalog, {ty} : Tahitian, [{tai} : Tai (Other)], {tg} : Tajik, {tmh} :
-Tamashek, {ta} : Tamil, {i-tao} : Tao, {tt} : Tatar, {i-tay} : Tayal, {te}
-: Telugu, {ter} : Tereno, {tet} : Tetum, {th} : Thai, {bo} : Tibetan, {tig}
-: Tigre, {ti} : Tigrinya, {tem} : Timne, {tiv} : Tiv, {tli} : Tlingit,
-{tpi} : Tok Pisin, {tkl} : Tokelau, {tog} : Tonga (Nyasa), {to} : Tonga
-(Tonga Islands), {tsi} : Tsimshian, {ts} : Tsonga, {i-tsu} : Tsou, {tn} :
-Tswana, {tum} : Tumbuka, {tr} : Turkish, {ota} : Ottoman Turkish
-(1500-1928), {tk} : Turkmen, {tvl} : Tuvalu, {tyv} : Tuvinian, {tw} : Twi,
-{uga} : Ugaritic, {ug} : Uighur, {uk} : Ukrainian, {umb} : Umbundu, {und} :
-Undetermined, {ur} : Urdu, {uz} : Uzbek, {vai} : Vai, {ven} : Venda, {vi} :
-Vietnamese, {vo} : Volapuk, {vot} : Votic, [{wak} : Wakashan languages],
-{wal} : Walamo, {war} : Waray, {was} : Washo, {cy} : Welsh, {wo} : Wolof,
-{x-...} : Unregistered (Semi-Private Use), {xh} : Xhosa, {sah} : Yakut,
-{yao} : Yao, {yap} : Yapese, {yi} : Yiddish, {yo} : Yoruba, [{ypk} : Yupik
-languages], {znd} : Zande, [{zap} : Zapotec], {zen} : Zenaga, {za} :
-Zhuang, {zu} : Zulu, {zun} : Zuni
+languages], {sam} : Samaritan Aramaic, {se} : Northern Sami, {sma} :
+Southern Sami, {smn} : Inari Sami, {smj} : Lule Sami, {sms} : Skolt Sami,
+[{smi} : Sami languages (Other)], {sm} : Samoan, {sad} : Sandawe, {sg} :
+Sango, {sa} : Sanskrit, {sat} : Santali, {sc} : Sardinian, {sas} : Sasak,
+{sco} : Scots, {sel} : Selkup, [{sem} : Semitic (Other)], {sr} : Serbian,
+{srr} : Serer, {shn} : Shan, {sn} : Shona, {sid} : Sidamo, {sgn-...} : Sign
+Languages, {bla} : Siksika, {sd} : Sindhi, {si} : Sinhalese, [{sit} :
+Sino-Tibetan (Other)], [{sio} : Siouan languages], {den} : Slave
+(Athapascan), [{sla} : Slavic (Other)], {sk} : Slovak, {sl} : Slovenian,
+{sog} : Sogdian, {so} : Somali, {son} : Songhai, {snk} : Soninke, {wen} :
+Sorbian languages, {nso} : Northern Sotho, {st} : Southern Sotho, [{sai} :
+South American Indian (Other)], {es} : Spanish, {suk} : Sukuma, {sux} :
+Sumerian, {su} : Sundanese, {sus} : Susu, {sw} : Swahili, {ss} : Swati,
+{sv} : Swedish, {syr} : Syriac, {tl} : Tagalog, {ty} : Tahitian, [{tai} :
+Tai (Other)], {tg} : Tajik, {tmh} : Tamashek, {ta} : Tamil, {i-tao} : Tao,
+{tt} : Tatar, {i-tay} : Tayal, {te} : Telugu, {ter} : Tereno, {tet} :
+Tetum, {th} : Thai, {bo} : Tibetan, {tig} : Tigre, {ti} : Tigrinya, {tem} :
+Timne, {tiv} : Tiv, {tli} : Tlingit, {tpi} : Tok Pisin, {tkl} : Tokelau,
+{tog} : Tonga (Nyasa), {to} : Tonga (Tonga Islands), {tsi} : Tsimshian,
+{ts} : Tsonga, {i-tsu} : Tsou, {tn} : Tswana, {tum} : Tumbuka, [{tup} :
+Tupi languages], {tr} : Turkish, {ota} : Ottoman Turkish (1500-1928), {crh}
+: Crimean Turkish, {tk} : Turkmen, {tvl} : Tuvalu, {tyv} : Tuvinian, {tw} :
+Twi, {udm} : Udmurt, {uga} : Ugaritic, {ug} : Uighur, {uk} : Ukrainian,
+{umb} : Umbundu, {und} : Undetermined, {ur} : Urdu, {uz} : Uzbek, {vai} :
+Vai, {ve} : Venda, {vi} : Vietnamese, {vo} : Volapuk, {vot} : Votic, [{wak}
+: Wakashan languages], {wa} : Walloon, {wal} : Walamo, {war} : Waray, {was}
+: Washo, {cy} : Welsh, {wo} : Wolof, {x-...} : Unregistered (Semi-Private
+Use), {xh} : Xhosa, {sah} : Yakut, {yao} : Yao, {yap} : Yapese, {ii} :
+Sichuan Yi, {yi} : Yiddish, {yo} : Yoruba, [{ypk} : Yupik languages], {znd}
+: Zande, [{zap} : Zapotec], {zen} : Zenaga, {za} : Zhuang, {zu} : Zulu,
+{zun} : Zuni
 
 =item SEE ALSO
@@ -14226,4 +15329,6 @@
 =item DESCRIPTION
 
+=item DEPRECATED
+
 =back
 
@@ -14237,5 +15342,5 @@
 
 new ( [ DIRNAME ] ), open ( DIRNAME ), read (), seek ( POS ), tell (),
-rewind (), close (), tie %hash, IO::Dir, DIRNAME [, OPTIONS ]
+rewind (), close (), tie %hash, 'IO::Dir', DIRNAME [, OPTIONS ]
 
 =item SEE ALSO
@@ -14261,5 +15366,5 @@
 =item METHODS
 
-open( FILENAME [,MODE [,PERMS]] )
+open( FILENAME [,MODE [,PERMS]] ), open( FILENAME, IOLAYERS )
 
 =item SEE ALSO
@@ -14377,5 +15482,5 @@
 add ( HANDLES ), remove ( HANDLES ), exists ( HANDLE ), handles, can_read (
 [ TIMEOUT ] ), can_write ( [ TIMEOUT ] ), has_exception ( [ TIMEOUT ] ),
-count (), bits(), select ( READ, WRITE, ERROR [, TIMEOUT ] )
+count (), bits(), select ( READ, WRITE, EXCEPTION [, TIMEOUT ] )
 
 =item EXAMPLE
@@ -14475,5 +15580,5 @@
 
 new ( [ DIRNAME ] ), open ( DIRNAME ), read (), seek ( POS ), tell (),
-rewind (), close (), tie %hash, IO::Dir, DIRNAME [, OPTIONS ]
+rewind (), close (), tie %hash, 'IO::Dir', DIRNAME [, OPTIONS ]
 
 =item SEE ALSO
@@ -14499,5 +15604,5 @@
 =item METHODS
 
-open( FILENAME [,MODE [,PERMS]] )
+open( FILENAME [,MODE [,PERMS]] ), open( FILENAME, IOLAYERS )
 
 =item SEE ALSO
@@ -14618,5 +15723,5 @@
 add ( HANDLES ), remove ( HANDLES ), exists ( HANDLE ), handles, can_read (
 [ TIMEOUT ] ), can_write ( [ TIMEOUT ] ), has_exception ( [ TIMEOUT ] ),
-count (), bits(), select ( READ, WRITE, ERROR [, TIMEOUT ] )
+count (), bits(), select ( READ, WRITE, EXCEPTION [, TIMEOUT ] )
 
 =item EXAMPLE
@@ -14893,6 +15998,7 @@
 =item DESCRIPTION
 
-blessed EXPR, dualvar NUM, STRING, isweak EXPR, openhandle FH, reftype
-EXPR, tainted EXPR, weaken REF
+blessed EXPR, dualvar NUM, STRING, isvstring EXPR, isweak EXPR,
+looks_like_number EXPR, openhandle FH, refaddr EXPR, reftype EXPR,
+set_prototype CODEREF, PROTOTYPE, tainted EXPR, weaken REF
 
 =item KNOWN BUGS
@@ -15038,5 +16144,5 @@
 =back
 
-=head2 Locale::Maketext -- framework for localization
+=head2 Locale::Maketext - framework for localization
 
 =over 4
@@ -15175,5 +16281,5 @@
 =item DESCRIPTION
 
-encode_base64($str, [$eol]), decode_base64($str)
+encode_base64($str), encode_base64($str, $eol);, decode_base64($str)
 
 =item DIAGNOSTICS
@@ -15184,4 +16290,6 @@
 
 =item COPYRIGHT
+
+=item SEE ALSO
 
 =back
@@ -15196,7 +16304,9 @@
 =item DESCRIPTION
 
-encode_qp($str), decode_qp($str);
+encode_qp($str), encode_qp($str, $eol), decode_qp($str);
 
 =item COPYRIGHT
+
+=item SEE ALSO
 
 =back
@@ -15211,7 +16321,9 @@
 =item DESCRIPTION
 
-encode_qp($str), decode_qp($str);
+encode_qp($str), encode_qp($str, $eol), decode_qp($str);
 
 =item COPYRIGHT
+
+=item SEE ALSO
 
 =back
@@ -15258,8 +16370,10 @@
 =item BUGS
 
-=item CAVEAT
+=item CAVEATS
 
 stringify, bstr(), bdiv, Modifying and =, bpow
 
+=item SEE ALSO
+
 =item LICENSE
 
@@ -15276,5 +16390,5 @@
 =item DESCRIPTION
 
-Canonical notation, Input, Output
+Input, Output
 
 =item METHODS
@@ -15286,4 +16400,6 @@
 =item accuracy
 
+=item precision
+
 =item brsft
 
@@ -15300,8 +16416,8 @@
 =item is_one()/is_zero()/is_nan()/is_inf()
 
-=item is_positive()/is_negative()
-
-	$x->is_positive();		# true if >= 0
-	$x->is_negative();		# true if <  0
+=item is_pos()/is_neg()
+
+	$x->is_pos();			# true if >= 0
+	$x->is_neg();			# true if <  0
 
 =item is_odd()/is_even()/is_int()
@@ -15313,5 +16429,5 @@
 =item sign
 
-=item bcmp
+=item digit
 
 =item bneg
@@ -15381,5 +16497,5 @@
 =item copy
 
-=item as_number
+=item as_int
 
 =item bsstr
@@ -15452,11 +16568,12 @@
 =item BUGS
 
-Out of Memory!, Fails to load Calc on Perl prior 5.6.0
+broot() does not work, Out of Memory!, Fails to load Calc on Perl prior
+5.6.0
 
 =item CAVEATS
 
-stringify, bstr(), bsstr() and 'cmp', int(), length, bdiv, infinity
-handling, Modifying and =, bpow, Overloading -$x, Mixing different object
-types, bsqrt(), brsft()
+bstr(), bsstr() and 'cmp', int(), length, bdiv, infinity handling,
+Modifying and =, bpow, Overloading -$x, Mixing different object types,
+bsqrt(), brsft()
 
 =item LICENSE
@@ -15476,5 +16593,7 @@
 =item DESCRIPTION
 
-=item EXPORT
+=item STORAGE
+
+=item METHODS
 
 =item WRAP YOUR OWN
@@ -15492,4 +16611,26 @@
 =back
 
+=head2 Math::BigInt::CalcEmu - Emulate low-level math with BigInt code
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item METHODS
+
+=item LICENSE
+
+This program is free software; you may redistribute it and/or modify it
+under
+the same terms as Perl itself. 
+
+=item AUTHORS
+
+=item SEE ALSO
+
+=back
+
 =head2 Math::BigRat - arbitrarily big rationals
 
@@ -15528,7 +16669,34 @@
 =item bround()/round()/bfround()
 
+=item bmod()
+
+=item is_one()
+
+=item is_zero()
+
+=item is_positive()
+
+=item is_negative()
+
+=item is_int()
+
+=item is_odd()
+
+=item is_even()
+
+=item bceil()
+
+=item bfloor()
+
+	$x->bfloor();
+
+=item config
+
 =back
 
 =item BUGS
+
+inf handling (partial), NaN handling (partial), rounding (not implemented
+except for bceil/bfloor), $x ** $y where $y is not an integer
 
 =item LICENSE
@@ -15772,5 +16940,6 @@
 =back
 
-=head2 NEXT - Provide a pseudo-class NEXT that allows method redispatch
+=head2 NEXT - Provide a pseudo-class NEXT (et al) that allows method
+redispatch
 
 =over 4
@@ -15785,4 +16954,8 @@
 
 =item Avoiding repetitions
+
+=item Invoking all versions of a method with a single call
+
+=item Using C<EVERY> methods
 
 =back
@@ -15813,5 +16986,5 @@
 debug_print ( DIR, TEXT ), debug_text ( TEXT ), command ( CMD [, ARGS, ...
 ]), unsupported (), response (), parse_response ( TEXT ), getline (),
-ungetline ( TEXT ), read_until_dot (), tied_fh ()
+ungetline ( TEXT ), rawdatasend ( DATA ), read_until_dot (), tied_fh ()
 
 =item EXPORTS
@@ -15877,16 +17050,16 @@
 
 login ([LOGIN [,PASSWORD [, ACCOUNT] ] ]), authorize ( [AUTH [, RESP]]),
-site (ARGS), type (TYPE [, ARGS]), ascii ([ARGS]) binary([ARGS])
-ebcdic([ARGS]) byte([ARGS]), rename ( OLDNAME, NEWNAME ), delete ( FILENAME
-), cwd ( [ DIR ] ), cdup (), pwd (), restart ( WHERE ), rmdir ( DIR ),
-mkdir ( DIR [, RECURSE ]), ls ( [ DIR ] ), dir ( [ DIR ] ), get (
-REMOTE_FILE [, LOCAL_FILE [, WHERE]] ), put ( LOCAL_FILE [, REMOTE_FILE ]
-), put_unique ( LOCAL_FILE [, REMOTE_FILE ] ), append ( LOCAL_FILE [,
-REMOTE_FILE ] ), unique_name (), mdtm ( FILE ), size ( FILE ), supported (
-CMD ), hash ( [FILEHANDLE_GLOB_REF],[ BYTES_PER_HASH_MARK] ), nlst ( [ DIR
-] ), list ( [ DIR ] ), retr ( FILE ), stor ( FILE ), stou ( FILE ), appe (
-FILE ), port ( [ PORT ] ), pasv (), pasv_xfer ( SRC_FILE, DEST_SERVER [,
-DEST_FILE ] ), pasv_xfer_unique ( SRC_FILE, DEST_SERVER [, DEST_FILE ] ),
-pasv_wait ( NON_PASV_SERVER ), abort (), quit ()
+site (ARGS), ascii, binary, rename ( OLDNAME, NEWNAME ), delete ( FILENAME
+), cwd ( [ DIR ] ), cdup (), pwd (), restart ( WHERE ), rmdir ( DIR [,
+RECURSE ]), mkdir ( DIR [, RECURSE ]), ls ( [ DIR ] ), alloc ( SIZE [,
+RECORD_SIZE] ), dir ( [ DIR ] ), get ( REMOTE_FILE [, LOCAL_FILE [, WHERE]]
+), put ( LOCAL_FILE [, REMOTE_FILE ] ), put_unique ( LOCAL_FILE [,
+REMOTE_FILE ] ), append ( LOCAL_FILE [, REMOTE_FILE ] ), unique_name (),
+mdtm ( FILE ), size ( FILE ), supported ( CMD ), hash (
+[FILEHANDLE_GLOB_REF],[ BYTES_PER_HASH_MARK] ), nlst ( [ DIR ] ), list ( [
+DIR ] ), retr ( FILE ), stor ( FILE ), stou ( FILE ), appe ( FILE ), port (
+[ PORT ] ), pasv (), pasv_xfer ( SRC_FILE, DEST_SERVER [, DEST_FILE ] ),
+pasv_xfer_unique ( SRC_FILE, DEST_SERVER [, DEST_FILE ] ), pasv_wait (
+NON_PASV_SERVER ), abort (), quit ()
 
 =over 4
@@ -15905,5 +17078,5 @@
 =item UNIMPLEMENTED
 
-B<ALLO>, B<SMNT>, B<HELP>, B<MODE>, B<SYST>, B<STAT>, B<STRU>, B<REIN>
+B<SMNT>, B<HELP>, B<MODE>, B<SYST>, B<STAT>, B<STRU>, B<REIN>
 
 =item REPORTING BUGS
@@ -15915,5 +17088,5 @@
 =item USE EXAMPLES
 
-http://www.csh.rit.edu/~adam/Progs/autoftp-2.0.tar.gz
+http://www.csh.rit.edu/~adam/Progs/
 
 =item CREDITS
@@ -15979,6 +17152,4 @@
 =item DESCRIPTION
 
-=item EXAMPLES
-
 =item CONSTRUCTOR
 
@@ -16014,16 +17185,18 @@
 =item Functions
 
-Net::Ping->new([$proto [, $def_timeout [, $bytes]]]);, $p->ping($host [,
-$timeout]);, $p->source_verify( { 0 | 1 } );, $p->hires( { 0 | 1 } );,
-$p->bind($local_addr);, $p->open($host);, $p->close();, pingecho($host [,
-$timeout]);
-
-=back
-
-=item WARNING
+Net::Ping->new([$proto [, $def_timeout [, $bytes [, $device [, $tos
+]]]]]);, $p->ping($host [, $timeout]);, $p->source_verify( { 0 | 1 } );,
+$p->service_check( { 0 | 1 } );, $p->tcp_service_check( { 0 | 1 } );,
+$p->hires( { 0 | 1 } );, $p->bind($local_addr);, $p->open($host);, $p->ack(
+[ $host ] );, $p->nack( $failed_ack_host );, $p->close();, pingecho($host
+[, $timeout]);
+
+=back
 
 =item NOTES
 
 =item INSTALL
+
+=item BUGS
 
 =item AUTHORS
@@ -16433,15 +17606,15 @@
 fflush, fgetc, fgetpos, fgets, fileno, floor, fmod, fopen, fork, fpathconf,
 fprintf, fputc, fputs, fread, free, freopen, frexp, fscanf, fseek, fsetpos,
-fstat, ftell, fwrite, getc, getchar, getcwd, getegid, getenv, geteuid,
-getgid, getgrgid, getgrnam, getgroups, getlogin, getpgrp, getpid, getppid,
-getpwnam, getpwuid, gets, getuid, gmtime, isalnum, isalpha, isatty,
-iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper,
-isxdigit, kill, labs, ldexp, ldiv, link, localeconv, localtime, log, log10,
-longjmp, lseek, malloc, mblen, mbstowcs, mbtowc, memchr, memcmp, memcpy,
-memmove, memset, mkdir, mkfifo, mktime, modf, nice, offsetof, open,
-opendir, pathconf, pause, perror, pipe, pow, printf, putc, putchar, puts,
-qsort, raise, rand, read, readdir, realloc, remove, rename, rewind,
-rewinddir, rmdir, scanf, setgid, setjmp, setlocale, setpgid, setsid,
-setuid, sigaction, siglongjmp, sigpending, sigprocmask, sigsetjmp,
+fstat, fsync, ftell, fwrite, getc, getchar, getcwd, getegid, getenv,
+geteuid, getgid, getgrgid, getgrnam, getgroups, getlogin, getpgrp, getpid,
+getppid, getpwnam, getpwuid, gets, getuid, gmtime, isalnum, isalpha,
+isatty, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace,
+isupper, isxdigit, kill, labs, ldexp, ldiv, link, localeconv, localtime,
+log, log10, longjmp, lseek, malloc, mblen, mbstowcs, mbtowc, memchr,
+memcmp, memcpy, memmove, memset, mkdir, mkfifo, mktime, modf, nice,
+offsetof, open, opendir, pathconf, pause, perror, pipe, pow, printf, putc,
+putchar, puts, qsort, raise, rand, read, readdir, realloc, remove, rename,
+rewind, rewinddir, rmdir, scanf, setgid, setjmp, setlocale, setpgid,
+setsid, setuid, sigaction, siglongjmp, sigpending, sigprocmask, sigsetjmp,
 sigsuspend, sin, sinh, sleep, sprintf, sqrt, srand, sscanf, stat, strcat,
 strchr, strcmp, strcoll, strcpy, strcspn, strerror, strftime, strlen,
@@ -16459,5 +17632,5 @@
 =item POSIX::SigAction
 
-new
+new, handler, mask, flags, safe
 
 =item POSIX::SigSet
@@ -16551,7 +17724,11 @@
 =item DESCRIPTION
 
-unix, stdio, perlio, crlf, utf8, bytes, raw, pop
-
-=over 4
+:unix, :stdio, :perlio, :crlf, :mmap, :utf8, :bytes, :raw, :pop, :win32
+
+=over 4
+
+=item Custom Layers
+
+:encoding, :via
 
 =item Alternatives to raw
@@ -16559,4 +17736,6 @@
 =item Defaults and how to override them
 
+=item Querying the layers of filehandles
+
 =back
 
@@ -16579,11 +17758,13 @@
 =back
 
-=head2 PerlIO::scalar - support module for in-memory IO.
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
+=head2 PerlIO::scalar - in-memory IO, scalar IO
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item IMPLEMENTATION NOTE
 
 =back
@@ -16600,11 +17781,11 @@
 
 $class->PUSHED([$mode[,$fh]]), $obj->POPPED([$fh]),
-$obj->OPEN($path,$mode[,$fh]), $obj->BINMODE([,$fh]),
-$obj->FDOPEN($fd[,$fh]), $obj->SYSOPEN($path,$imode,$perm,[,$fh]),
-$obj->FILENO($fh), $obj->READ($buffer,$len,$fh), $obj->WRITE($buffer,$fh),
-$obj->FILL($fh), $obj->CLOSE($fh), $obj->SEEK($posn,$whence,$fh),
-$obj->TELL($fh), $obj->UNREAD($buffer,$fh), $obj->FLUSH($fh),
-$obj->SETLINEBUF($fh), $obj->CLEARERR($fh), $obj->ERROR($fh),
-$obj->EOF($fh)
+$obj->UTF8($bellowFlag,[$fh]), $obj->OPEN($path,$mode[,$fh]),
+$obj->BINMODE([,$fh]), $obj->FDOPEN($fd[,$fh]),
+$obj->SYSOPEN($path,$imode,$perm,[,$fh]), $obj->FILENO($fh),
+$obj->READ($buffer,$len,$fh), $obj->WRITE($buffer,$fh), $obj->FILL($fh),
+$obj->CLOSE($fh), $obj->SEEK($posn,$whence,$fh), $obj->TELL($fh),
+$obj->UNREAD($buffer,$fh), $obj->FLUSH($fh), $obj->SETLINEBUF($fh),
+$obj->CLEARERR($fh), $obj->ERROR($fh), $obj->EOF($fh)
 
 =item EXAMPLES
@@ -16626,5 +17807,9 @@
 =item DESCRIPTION
 
-=item SEE ALSO
+=item REQUIRED MODULES
+
+=item SEE ALSO
+
+=item ACKNOWLEDGEMENTS
 
 =item COPYRIGHT
@@ -16673,5 +17858,6 @@
 vs. I<two>), I<N> unescaped C<E<lt>E<gt>> in paragraph, Unknown entity, No
 items in =over, No argument for =item, empty section in previous paragraph,
-Verbatim paragraph in NAME section
+Verbatim paragraph in NAME section, =headI<n> without preceding higher
+level
 
 =item Hyperlinks
@@ -16697,4 +17883,6 @@
 C<$checker-E<gt>num_errors()>
 
+C<$checker-E<gt>num_warnings()>
+
 C<$checker-E<gt>name()>
 
@@ -16769,7 +17957,7 @@
 =item ARGUMENTS
 
-backlink, cachedir, css, flush, header, help, htmldir, htmlroot, index,
-infile, libpods, netscape, outfile, podpath, podroot, quiet, recurse,
-title, verbose
+backlink, cachedir, css, flush, header, help, hiddendirs, htmldir,
+htmlroot, index, infile, libpods, netscape, outfile, podpath, podroot,
+quiet, recurse, title, verbose
 
 =item EXAMPLE
@@ -17526,4 +18714,161 @@
 =back
 
+=head2 Pod::Perldoc::ToChecker - let Perldoc check Pod for errors
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item SEE ALSO
+
+=item COPYRIGHT AND DISCLAIMERS
+
+=item AUTHOR
+
+=back
+
+=head2 Pod::Perldoc::ToMan - let Perldoc render Pod as man pages
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CAVEAT
+
+=item SEE ALSO
+
+=item COPYRIGHT AND DISCLAIMERS
+
+=item AUTHOR
+
+=back
+
+=head2 Pod::Perldoc::ToNroff - let Perldoc convert Pod to nroff
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CAVEAT
+
+=item SEE ALSO
+
+=item COPYRIGHT AND DISCLAIMERS
+
+=item AUTHOR
+
+=back
+
+=head2 Pod::Perldoc::ToPod - let Perldoc render Pod as ... Pod!
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item SEE ALSO
+
+=item COPYRIGHT AND DISCLAIMERS
+
+=item AUTHOR
+
+=back
+
+=head2 Pod::Perldoc::ToRtf - let Perldoc render Pod as RTF
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item SEE ALSO
+
+=item COPYRIGHT AND DISCLAIMERS
+
+=item AUTHOR
+
+=back
+
+=head2 Pod::Perldoc::ToText - let Perldoc render Pod as plaintext
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CAVEAT
+
+=item SEE ALSO
+
+=item COPYRIGHT AND DISCLAIMERS
+
+=item AUTHOR
+
+=back
+
+=head2 Pod::Perldoc::ToTk - let Perldoc use Tk::Pod to render Pod
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
+=head2 Pod::Perldoc::ToXml - let Perldoc render Pod as XML
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item SEE ALSO
+
+=item COPYRIGHT AND DISCLAIMERS
+
+=item AUTHOR
+
+=back
+
+=head2 Pod::PlainText - Convert POD data to formatted ASCII text
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+alt, indent, loose, sentence, width
+
+=item DIAGNOSTICS
+
+Bizarre space in item, Can't open %s for reading: %s, Unknown escape: %s,
+Unknown sequence: %s, Unmatched =back
+
+=item RESTRICTIONS
+
+=item NOTES
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
 =head2 Pod::Plainer - Perl extension for converting Pod to old style Pod.
 
@@ -17661,5 +19006,5 @@
 =item DESCRIPTION
 
-alt, code, indent, loose, quotes, sentence, width
+alt, code, indent, loose, margin, quotes, sentence, width
 
 =item DIAGNOSTICS
@@ -17768,81 +19113,4 @@
 =back
 
-=head2 Pod::t::basic, basic.pod - Test of various basic POD features in
-translators.
-
-=over 4
-
-=item HEADINGS
-
-=item This C<is> a "level 1" heading
-
-=over 4
-
-=item ``Level'' "2 I<heading>
-
-=back
-
-=item This C<is> a "level 1" heading
-
-=over 4
-
-=item ``Level'' 2 I<heading>
-
-=back
-
-=item LINKS
-
-=item OVER AND ITEMS
-
-This  is a test, a, b, a, b, c, d, "foo", B<bar>, C<baz>, Some longer item
-text
-
-=item FORMATTING CODES
-
-E<amp>, E<apos>, E<lt>, E<gt>, E<quot>, E<sol>
-
-=item VERBATIM
-
-=item CONCLUSION
-
-=back
-
-=head2 Pod::t::htmlescp, Escape Sequences Test
-
-=over 4
-
-=item DESCRIPTION
-
-=back
-
-=head2 Pod::t::htmlview, Test HTML Rendering
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item METHODS =E<gt> OTHER STUFF
-
-=over 4
-
-=item new()
-
-foo, bar, baz, C<Black> Cat, Sat S<I<on> the>, MatE<lt>!E<gt>, 1 Cat, 2
-Sat, 3 Mat
-
-=item old()
-
-=back
-
-=item TESTING FOR AND BEGIN
-
-=item TESTING URLs hyperlinking
-
-=item SEE ALSO
-
-=back
-
 =head2 SDBM_File - Tied access to sdbm files
 
@@ -17908,6 +19176,7 @@
 =item DESCRIPTION
 
-blessed EXPR, dualvar NUM, STRING, isweak EXPR, openhandle FH, reftype
-EXPR, tainted EXPR, weaken REF
+blessed EXPR, dualvar NUM, STRING, isvstring EXPR, isweak EXPR,
+looks_like_number EXPR, openhandle FH, refaddr EXPR, reftype EXPR,
+set_prototype CODEREF, PROTOTYPE, tainted EXPR, weaken REF
 
 =item KNOWN BUGS
@@ -18018,4 +19287,6 @@
 =item CANONICAL REPRESENTATION
 
+=item CODE REFERENCES
+
 =item FORWARD COMPATIBILITY
 
@@ -18109,4 +19380,6 @@
 
 =item DESCRIPTION
+
+=item BUGS
 
 =back
@@ -18252,6 +19525,6 @@
 =back
 
-=head2 Term::ReadLine - Perl interface to various C<readline> packages. If
-no real package is found, substitutes stubs instead of basic functions.
+=head2 Term::ReadLine - Perl interface to various C<readline> packages.
+If no real package is found, substitutes stubs instead of basic functions.
 
 =over 4
@@ -18263,6 +19536,6 @@
 =item Minimal set of supported functions
 
-C<ReadLine>, C<new>, C<readline>, C<addhistory>, C<IN>, $C<OUT>,
-C<MinLine>, C<findConsole>, Attribs, C<Features>
+C<ReadLine>, C<new>, C<readline>, C<addhistory>, C<IN>, C<OUT>, C<MinLine>,
+C<findConsole>, Attribs, C<Features>
 
 =item Additional supported functions
@@ -18286,76 +19559,83 @@
 =item DESCRIPTION
 
+=item QUICK START GUIDE
+
 =over 4
 
 =item Functions
 
+C<plan(...)>, C<tests =E<gt> I<number>>, C<todo =E<gt> [I<1,5,14>]>,
+C<onfail =E<gt> sub { ... }>, C<onfail =E<gt> \&some_sub>
+
+=back
+
+=back
+
+B<_to_value>
+
+C<ok(...)>
+
+C<skip(I<skip_if_true>, I<args...>)>
+
+=over 4
+
+=item TEST TYPES
+
+NORMAL TESTS, SKIPPED TESTS, TODO TESTS
+
+=item ONFAIL
+
+=item BUGS and CAVEATS
+
+=item NOTE
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
+=head2 Test::Builder - Backend for building test libraries
+
+=over 4
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over 4
+
+=item Construction
+
+B<new>
+
+=back
+
+=back
+
+=over 4
+
+=item Setting up tests
+
+B<exported_to>
+
+=back
+
 B<plan>
 
-=back
-
-=back
-
-B<_to_value>
+B<expected_tests>
+
+B<no_plan>
+
+B<has_plan>
+
+B<skip_all>
+
+=over 4
+
+=item Running tests
 
 B<ok>
 
-=over 4
-
-=item TEST TYPES
-
-NORMAL TESTS, SKIPPED TESTS, TODO TESTS
-
-=item ONFAIL
-
-=item BUGS and CAVEATS
-
-=item NOTE
-
-=item SEE ALSO
-
-=item AUTHOR
-
-=back
-
-=head2 Test::Builder - Backend for building test libraries
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=over 4
-
-=item Construction
-
-B<new>
-
-=back
-
-=back
-
-=over 4
-
-=item Setting up tests
-
-B<exported_to>
-
-=back
-
-B<plan>
-
-B<expected_tests>
-
-B<no_plan>
-
-B<skip_all>
-
-=over 4
-
-=item Running tests
-
-B<ok>
-
 =back
 
@@ -18412,5 +19692,7 @@
 B<summary>
 
-B<details>  I<UNIMPLEMENTED>, B<todo>
+B<details>
+
+B<todo>
 
 B<caller>
@@ -18436,5 +19718,11 @@
 =back
 
-=head2 Test::Harness - run perl standard test scripts with statistics
+=head2 Test::Harness - Run Perl standard test scripts with statistics
+
+=over 4
+
+=item VERSION
+
+=back
 
 =over 4
@@ -18456,5 +19744,5 @@
 =item Configuration variables.
 
-B<$Test::Harness::verbose>, B<$Test::Harness::switches>
+B<$Test::Harness::Verbose>, B<$Test::Harness::switches>
 
 =item Failure
@@ -18495,5 +19783,6 @@
 
 C<HARNESS_ACTIVE>, C<HARNESS_COLUMNS>, C<HARNESS_COMPILE_TEST>,
-C<HARNESS_FILELEAK_IN_DIR>, C<HARNESS_IGNORE_EXITCODE>, C<HARNESS_NOTTY>,
+C<HARNESS_DEBUG>, C<HARNESS_FILELEAK_IN_DIR>, C<HARNESS_IGNORE_EXITCODE>,
+C<HARNESS_NOTTY>, C<HARNESS_OK_SLOW>, C<HARNESS_PERL>,
 C<HARNESS_PERL_SWITCHES>, C<HARNESS_VERBOSE>
 
@@ -18504,8 +19793,14 @@
 =item AUTHORS
 
+=item LICENSE
+
 =item TODO
 
 =item BUGS
 
+=item AUTHORS
+
+=item COPYRIGHT
+
 =back
 
@@ -18518,9 +19813,9 @@
 =item DESCRIPTION
 
-=over 4
-
-=item Functions
-
-B<assert>
+=item FUNCTIONS
+
+=over 4
+
+=item C<assert()>
 
 =back
@@ -18544,4 +19839,12 @@
 =item DESCRIPTION
 
+=over 4
+
+=item new()
+
+=item next()
+
+=back
+
 =back
 
@@ -18554,15 +19857,19 @@
 =item DESCRIPTION
 
-=over 4
-
 =item Construction
 
-B<new>
-
-=back
-
-=back
-
-B<_init>
+=over 4
+
+=item C<new>
+
+=back
+
+=back
+
+=over 4
+
+=item C<_init>
+
+=back
 
 =over 4
@@ -18570,19 +19877,65 @@
 =item Analysis
 
-B<analyze>
-
-=back
-
-B<analyze_fh>
-
-B<analyze_file>
-
-B<_switches>
-
-B<_INC2PERL5LIB>
-
-B<_filtered_INC>
-
-B<_restore_PERL5LIB>
+=over 4
+
+=item C<analyze>
+
+=back
+
+=back
+
+=over 4
+
+=item C<analyze_fh>
+
+=back
+
+=over 4
+
+=item C<analyze_file>
+
+=back
+
+=over 4
+
+=item C<_command_line( $file )>
+
+=back
+
+=over 4
+
+=item C<_command>
+
+=back
+
+=over 4
+
+=item C<_switches>
+
+=back
+
+=over 4
+
+=item C<_cleaned_switches>
+
+=back
+
+=over 4
+
+=item C<_INC2PERL5LIB>
+
+=back
+
+=over 4
+
+=item C<_filtered_INC>
+
+=back
+
+=over 4
+
+=item C<_restore_PERL5LIB>
+
+=back
 
 =over 4
@@ -18590,15 +19943,35 @@
 =item Parsing
 
-B<_is_comment>
-
-=back
-
-B<_is_header>
-
-B<_is_test>
-
-B<_is_bail_out>
-
-B<_reset_file_state>
+=over 4
+
+=item C<_is_comment>
+
+=back
+
+=back
+
+=over 4
+
+=item C<_is_header>
+
+=back
+
+=over 4
+
+=item C<_is_test>
+
+=back
+
+=over 4
+
+=item C<_is_bail_out>
+
+=back
+
+=over 4
+
+=item C<_reset_file_state>
+
+=back
 
 =over 4
@@ -18606,5 +19979,9 @@
 =item Results
 
-B<_detailize>
+=over 4
+
+=item C<_detailize>
+
+=back
 
 =back
@@ -18835,4 +20212,8 @@
 
 =item C<extract_bracketed>
+
+=item C<extract_variable>
+
+[0], [1], [2]
 
 =item C<extract_tagged>
@@ -19080,4 +20461,6 @@
 =item C<defer>, C<flush>, C<discard>, and C<autodefer>
 
+=item C<offset>
+
 =back
 
@@ -19091,4 +20474,6 @@
 
 =back
+
+=item CONCURRENT ACCESS TO FILES
 
 =item CAVEATS
@@ -19140,5 +20525,6 @@
 
 TIEHASH classname, LIST, STORE this, key, value, FETCH this, key, FIRSTKEY
-this, NEXTKEY this, lastkey, EXISTS this, key, DELETE this, key, CLEAR this
+this, NEXTKEY this, lastkey, EXISTS this, key, DELETE this, key, CLEAR
+this, SCALAR this
 
 =item Inheriting from B<Tie::StdHash>
@@ -19146,5 +20532,5 @@
 =item Inheriting from B<Tie::ExtraHash>
 
-=item C<UNTIE> and C<DESTROY>
+=item C<SCALAR>, C<UNTIE> and C<DESTROY>
 
 =item MORE INFORMATION
@@ -19226,6 +20612,7 @@
 gettimeofday (), usleep ( $useconds ), ualarm ( $useconds [,
 $interval_useconds ] ), tv_interval, time (), sleep ( $floating_seconds ),
-alarm ( $floating_seconds [, $interval_floating_seconds ] ), setitimer,
-getitimer ( $which )
+alarm ( $floating_seconds [, $interval_floating_seconds ] ), setitimer (
+$which, $floating_seconds [, $interval_floating_seconds ] ), getitimer (
+$which )
 
 =item EXAMPLES
@@ -19233,11 +20620,19 @@
 =item C API
 
+=item DIAGNOSTICS
+
+=over 4
+
+=item negative time not invented yet
+
+=item internal error: useconds < 0 (unsigned ... signed ...)
+
+=back
+
 =item CAVEATS
 
 =item AUTHORS
 
-=item REVISION
-
-=item COPYRIGHT
+=item COPYRIGHT AND LICENSE
 
 =back
@@ -19254,4 +20649,8 @@
 
 =item BUGS
+
+=item SUPPORT
+
+=item AUTHOR
 
 =back
@@ -19307,6 +20706,9 @@
 =item DESCRIPTION
 
-$obj->isa( TYPE ), CLASS->isa( TYPE ), isa( VAL, TYPE ), $obj->can( METHOD
-), CLASS->can( METHOD ), can( VAL, METHOD ), VERSION ( [ REQUIRE ] )
+C<< $obj->isa( TYPE ) >>, C<< CLASS->isa( TYPE ) >>, C<isa( VAL, TYPE )>,
+C<TYPE>, C<$obj>, C<CLASS>, C<VAL>, C<< $obj->can( METHOD ) >>, C<<
+CLASS->can( METHOD ) >>, C<can( VAL, METHOD )>, C<VERSION ( [ REQUIRE ] )>
+
+=item EXPORTS
 
 =back
@@ -19324,7 +20726,8 @@
 =item Constructor and Tailoring
 
-alternate, backwards, entry, ignoreName, ignoreChar, level, normalization,
-overrideCJK, overrideHangul, preprocess, rearrange, table, undefName,
-undefChar, katakana_before_hiragana, upper_before_lower
+UCA_Version, backwards, entry, hangul_terminator, ignoreName, ignoreChar,
+level, normalization, overrideCJK, overrideHangul, preprocess, rearrange,
+table, undefName, undefChar, katakana_before_hiragana, upper_before_lower,
+variable, alternate
 
 =item Methods for Collation
@@ -19336,30 +20739,36 @@
 $Collator-E<gt>gt($a, $b)>, C<$result = $Collator-E<gt>ge($a, $b)>,
 C<$sortKey = $Collator-E<gt>getSortKey($string)>, C<$sortKeyForm =
-$Collator-E<gt>viewSortKey($string)>, C<$position =
-$Collator-E<gt>index($string, $substring)>, C<($position, $length) =
-$Collator-E<gt>index($string, $substring)>
+$Collator-E<gt>viewSortKey($string)>
+
+=item Methods for Searching
+
+C<$position = $Collator-E<gt>index($string, $substring[, $position])>,
+C<($position, $length) = $Collator-E<gt>index($string, $substring[,
+$position])>, C<$match_ref = $Collator-E<gt>match($string, $substring)>,
+C<($match)   = $Collator-E<gt>match($string, $substring)>, C<@match =
+$Collator-E<gt>gmatch($string, $substring)>, C<$count =
+$Collator-E<gt>subst($string, $substring, $replacement)>, C<$count =
+$Collator-E<gt>gsubst($string, $substring, $replacement)>
 
 =item Other Methods
 
-UCA_Version, Base_Unicode_Version
+C<%old_tailoring = $Collator-E<gt>change(%new_tailoring)>, C<$version =
+$Collator-E<gt>version()>, C<UCA_Version()>, C<Base_Unicode_Version()>
 
 =item EXPORT
 
-=item TODO
-
 =item CAVEAT
 
-=item BUGS
-
-=back
-
-=item AUTHOR
-
-=item SEE ALSO
-
-http://www.unicode.org/unicode/reports/tr10/,
-http://www.unicode.org/unicode/reports/tr10/allkeys.txt,
-http://www.unicode.org/unicode/reports/tr15/,
-http://www.unicode.org/unicode/reports/tr18, L<Unicode::Normalize>
+=item Conformance Test
+
+=back
+
+=item AUTHOR
+
+=item SEE ALSO
+
+Unicode Collation Algorithm - UTS #10, The Default Unicode Collation
+Element Table (DUCET), The conformance test for the UCA, Hangul Syllable
+Type, Unicode Normalization Forms - UAX #15, L<Unicode::Normalize>
 
 =back
@@ -19379,4 +20788,5 @@
 C<$NFD_string = NFD($string)>, C<$NFC_string = NFC($string)>,
 C<$NFKD_string = NFKD($string)>, C<$NFKC_string = NFKC($string)>,
+C<$FCD_string = FCD($string)>, C<$FCC_string = FCC($string)>,
 C<$normalized_string = normalize($form_name, $string)>
 
@@ -19391,4 +20801,5 @@
 C<$result = checkNFD($string)>, C<$result = checkNFC($string)>, C<$result =
 checkNFKD($string)>, C<$result = checkNFKC($string)>, C<$result =
+checkFCD($string)>, C<$result = checkFCC($string)>, C<$result =
 check($form_name, $string)>
 
@@ -19400,5 +20811,5 @@
 C<$combining_class = getCombinClass($codepoint)>, C<$is_exclusion =
 isExclusion($codepoint)>, C<$is_singleton = isSingleton($codepoint)>,
-C<$is_non_startar_decomposition = isNonStDecomp($codepoint)>,
+C<$is_non_starter_decomposition = isNonStDecomp($codepoint)>,
 C<$may_be_composed_with_prev_char = isComp2nd($codepoint)>
 
@@ -19411,6 +20822,7 @@
 =item SEE ALSO
 
-http://www.unicode.org/unicode/reports/tr15/,
-http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt
+http://www.unicode.org/reports/tr15/,
+http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt,
+http://www.unicode.org/notes/tn5/
 
 =back
@@ -19560,7 +20972,8 @@
 Win32::ExpandEnvironmentStrings(STRING), Win32::FormatMessage(ERRORCODE),
 Win32::FsType(), Win32::FreeLibrary(HANDLE), Win32::GetArchName(),
-Win32::GetChipName(), Win32::GetCwd(), Win32::GetFullPathName(FILENAME),
-Win32::GetLastError(), Win32::GetLongPathName(PATHNAME),
-Win32::GetNextAvailDrive(), Win32::GetOSVersion(), Win32::GetOSName(),
+Win32::GetChipName(), Win32::GetCwd(), Win32::GetFolderPath(FOLDER [,
+CREATE]), Win32::GetFullPathName(FILENAME), Win32::GetLastError(),
+Win32::GetLongPathName(PATHNAME), Win32::GetNextAvailDrive(),
+Win32::GetOSVersion(), Win32::GetOSName(),
 Win32::GetShortPathName(PATHNAME), Win32::GetProcAddress(INSTANCE,
 PROCNAME), Win32::GetTickCount(), Win32::InitiateSystemShutdown,
@@ -19586,4 +20999,22 @@
 =item DESCRIPTION
 
+=over 4
+
+=item Migration from C<DynaLoader>
+
+=item Backward compatible boilerplate
+
+=back
+
+=item Order of initialization: early load()
+
+=over 4
+
+=item The most hairy case
+
+=back
+
+=item LIMITATIONS
+
 =item AUTHOR
 
@@ -19599,19 +21030,27 @@
 =item a2p
 
+=item c2ph
+
+=item dprofpp
+
+=item h2ph
+
+=item h2xs
+
+=item perlbug
+
+=item perldoc
+
+=item pl2pm
+
+=item pod2html
+
+=item pod2man
+
 =item s2p
 
-=item find2perl
-
-=item h2ph
-
-=item c2ph
-
-=item h2xs
+=item splain
 
 =item xsubpp
-
-=item pod2man
-
-=item wrapsuid
 
 =back
Index: branches/vendor/third/perl/pod/perlsub.pod
===================================================================
--- branches/vendor/third/perl/pod/perlsub.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlsub.pod (revision 20074)
@@ -203,11 +203,15 @@
 to cheat if you know what you're doing.  See L<Prototypes> below.
 
-Functions whose names are in all upper case are reserved to the Perl
-core, as are modules whose names are in all lower case.  A
-function in all capitals is a loosely-held convention meaning it
-will be called indirectly by the run-time system itself, usually
-due to a triggered event.  Functions that do special, pre-defined
-things include C<BEGIN>, C<CHECK>, C<INIT>, C<END>, C<AUTOLOAD>,
-C<CLONE> and C<DESTROY>--plus all functions mentioned in L<perltie>.
+Subroutines whose names are in all upper case are reserved to the Perl
+core, as are modules whose names are in all lower case.  A subroutine in
+all capitals is a loosely-held convention meaning it will be called
+indirectly by the run-time system itself, usually due to a triggered event.
+Subroutines that do special, pre-defined things include C<AUTOLOAD>, C<CLONE>,
+C<DESTROY> plus all functions mentioned in L<perltie> and L<PerlIO::via>.
+
+The C<BEGIN>, C<CHECK>, C<INIT> and C<END> subroutines are not so much
+subroutines as named special code blocks, of which you can have more
+than one in a package, and which you can B<not> call explicitely.  See
+L<perlmod/"BEGIN, CHECK, INIT and END">
 
 =head2 Private Variables via my()
@@ -231,5 +235,5 @@
 list must be placed in parentheses.  All listed elements must be
 legal lvalues.  Only alphanumeric identifiers may be lexically
-scoped--magical built-ins like C<$/> must currently be C<local>ize
+scoped--magical built-ins like C<$/> must currently be C<local>ized
 with C<local> instead.
 
@@ -326,12 +330,6 @@
 the scope of $answer extends from its declaration through the rest
 of that conditional, including any C<elsif> and C<else> clauses, 
-but not beyond it.
-
-B<NOTE:> The behaviour of a C<my> statement modified with a statement
-modifier conditional or loop construct (e.g. C<my $x if ...>) is
-B<undefined>.  The value of the C<my> variable may be C<undef>, any
-previously assigned value, or possibly anything else.  Don't rely on
-it.  Future versions of perl might do something different from the
-version of perl you try it out on.  Here be dragons.
+but not beyond it.  See L<perlsyn/"Simple statements"> for information
+on the scope of variables in statements with modifiers.
 
 The C<foreach> loop defaults to scoping its index variable dynamically
@@ -447,8 +445,8 @@
 to be executed early, either by putting the whole block above
 your main program, or more likely, placing merely a C<BEGIN>
-sub around it to make sure it gets executed before your program
+code block around it to make sure it gets executed before your program
 starts to run:
 
-    sub BEGIN {
+    BEGIN {
 	my $secret_val = 0;
 	sub gimme_another {
@@ -457,6 +455,6 @@
     }
 
-See L<perlmod/"Package Constructors and Destructors"> about the
-special triggered functions, C<BEGIN>, C<CHECK>, C<INIT> and C<END>.
+See L<perlmod/"BEGIN, CHECK, INIT and END"> about the
+special triggered code blocks, C<BEGIN>, C<CHECK>, C<INIT> and C<END>.
 
 If declared at the outermost scope (the file scope), then lexicals
@@ -470,15 +468,22 @@
 B<WARNING>: In general, you should be using C<my> instead of C<local>, because
 it's faster and safer.  Exceptions to this include the global punctuation
-variables, filehandles and formats, and direct manipulation of the Perl
-symbol table itself.  Format variables often use C<local> though, as do
-other variables whose current value must be visible to called
-subroutines.
+variables, global filehandles and formats, and direct manipulation of the
+Perl symbol table itself.  C<local> is mostly used when the current value
+of a variable must be visible to called subroutines.
 
 Synopsis:
 
-    local $foo;	    		# declare $foo dynamically local
-    local (@wid, %get); 	# declare list of variables local
-    local $foo = "flurp";	# declare $foo dynamic, and init it
-    local @oof = @bar;		# declare @oof dynamic, and init it
+    # localization of values
+
+    local $foo;			# make $foo dynamically local
+    local (@wid, %get);		# make list of variables local
+    local $foo = "flurp";	# make $foo dynamic, and init it
+    local @oof = @bar;		# make @oof dynamic, and init it
+
+    local $hash{key} = "val";	# sets a local value for this hash entry
+    local ($cond ? $v1 : $v2);	# several types of lvalues support
+				# localization
+
+    # localization of symbols
 
     local *FH;			# localize $FH, @FH, %FH, &FH  ...
@@ -495,6 +500,11 @@
 is done with C<my>, which works more like C's auto declarations.
 
-If more than one variable is given to C<local>, they must be placed in
-parentheses.  All listed elements must be legal lvalues.  This operator works
+Some types of lvalues can be localized as well : hash and array elements
+and slices, conditionals (provided that their result is always
+localizable), and symbolic references.  As for simple variables, this
+creates new, dynamically scoped values.
+
+If more than one variable or expression is given to C<local>, they must be
+placed in parentheses.  This operator works
 by saving the current values of those variables in its argument list on a
 hidden stack and restoring them upon exiting the block, subroutine, or
@@ -503,26 +513,11 @@
 desired, which allows you to initialize your local variables.  (If no
 initializer is given for a particular variable, it is created with an
-undefined value.)  Commonly this is used to name the parameters to a
-subroutine.  Examples:
-
-    for $i ( 0 .. 9 ) {
-	$digits{$i} = $i;
-    }
-    # assume this function uses global %digits hash
-    parse_num();
-
-    # now temporarily add to %digits hash
-    if ($base12) {
-	# (NOTE: not claiming this is efficient!)
-	local %digits  = (%digits, 't' => 10, 'e' => 11);
-	parse_num();  # parse_num gets this new %digits!
-    }
-    # old %digits restored here
+undefined value.)
 
 Because C<local> is a run-time operator, it gets executed each time
-through a loop.  In releases of Perl previous to 5.0, this used more stack
-storage each time until the loop was exited.  Perl now reclaims the space
-each time through, but it's still more efficient to declare your variables
-outside the loop.
+through a loop.  Consequently, it's more efficient to localize your
+variables outside the loop.
+
+=head3 Grammatical note on local()
 
 A C<local> is simply a modifier on an lvalue expression.  When you assign to
@@ -539,45 +534,61 @@
 supplies a scalar context.
 
-A note about C<local()> and composite types is in order.  Something
-like C<local(%foo)> works by temporarily placing a brand new hash in
-the symbol table.  The old hash is left alone, but is hidden "behind"
-the new one.
-
-This means the old variable is completely invisible via the symbol
-table (i.e. the hash entry in the C<*foo> typeglob) for the duration
-of the dynamic scope within which the C<local()> was seen.  This
-has the effect of allowing one to temporarily occlude any magic on
-composite types.  For instance, this will briefly alter a tied
-hash to some other implementation:
-
-    tie %ahash, 'APackage';
-    [...]
-    {
-       local %ahash;
-       tie %ahash, 'BPackage';
-       [..called code will see %ahash tied to 'BPackage'..]
-       {
-          local %ahash;
-          [..%ahash is a normal (untied) hash here..]
-       }
-    }
-    [..%ahash back to its initial tied self again..]
-
-B<WARNING> The code example above does not currently work as described.
+=head3 Localization of special variables
+
+If you localize a special variable, you'll be giving a new value to it,
+but its magic won't go away.  That means that all side-effects related
+to this magic still work with the localized value.
+
+This feature allows code like this to work :
+
+    # Read the whole contents of FILE in $slurp
+    { local $/ = undef; $slurp = <FILE>; }
+
+Note, however, that this restricts localization of some values ; for
+example, the following statement dies, as of perl 5.9.0, with an error
+I<Modification of a read-only value attempted>, because the $1 variable is
+magical and read-only :
+
+    local $1 = 2;
+
+Similarly, but in a way more difficult to spot, the following snippet will
+die in perl 5.9.0 :
+
+    sub f { local $_ = "foo"; print }
+    for ($1) {
+	# now $_ is aliased to $1, thus is magic and readonly
+	f();
+    }
+
+See next section for an alternative to this situation.
+
+B<WARNING>: Localization of tied arrays and hashes does not currently
+work as described.
 This will be fixed in a future release of Perl; in the meantime, avoid
 code that relies on any particular behaviour of localising tied arrays
 or hashes (localising individual elements is still okay).
-See L<perldelta/"Localising Tied Arrays and Hashes Is Broken"> for more
+See L<perl58delta/"Localising Tied Arrays and Hashes Is Broken"> for more
 details.
 
-As another example, a custom implementation of C<%ENV> might look
-like this:
-
-    {
-        local %ENV;
-        tie %ENV, 'MyOwnEnv';
-        [..do your own fancy %ENV manipulation here..]
-    }
-    [..normal %ENV behavior here..]
+=head3 Localization of globs
+
+The construct
+
+    local *name;
+
+creates a whole new symbol table entry for the glob C<name> in the
+current package.  That means that all variables in its glob slot ($name,
+@name, %name, &name, and the C<name> filehandle) are dynamically reset.
+
+This implies, among other things, that any magic eventually carried by
+those variables is locally lost.  In other words, saying C<local */>
+will not have any effect on the internal value of the input record
+separator.
+
+Notably, if you want to work with a brand new value of the default scalar
+$_, and avoid the potential problem listed above about $_ previously
+carrying a magic value, you should use C<local *_> instead of C<local $_>.
+
+=head3 Localization of elements of composite types
 
 It's also worth taking a moment to explain what happens when you
@@ -1158,6 +1169,6 @@
 on a non-Unix system.
 
-Overriding may be done only by importing the name from a
-module--ordinary predeclaration isn't good enough.  However, the
+Overriding may be done only by importing the name from a module at
+compile time--ordinary predeclaration isn't good enough.  However, the
 C<use subs> pragma lets you, in effect, predeclare subs
 via the import syntax, and these names may then override built-in ones:
Index: branches/vendor/third/perl/pod/perlnewmod.pod
===================================================================
--- branches/vendor/third/perl/pod/perlnewmod.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlnewmod.pod (revision 20074)
@@ -92,5 +92,5 @@
 You might love it. You might feel that everyone else needs it. But there
 might not actually be any real demand for it out there. If you're unsure
-about the demand you're module will have, consider sending out feelers
+about the demand your module will have, consider sending out feelers
 on the C<comp.lang.perl.modules> newsgroup, or as a last resort, ask the
 modules list at C<modules@perl.org>. Remember that this is a closed list
Index: branches/vendor/third/perl/pod/perl583delta.pod
===================================================================
--- branches/vendor/third/perl/pod/perl583delta.pod (revision 20074)
+++ branches/vendor/third/perl/pod/perl583delta.pod (revision 20074)
@@ -0,0 +1,210 @@
+=head1 NAME
+
+perldelta - what is new for perl v5.8.3
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.8.2 release and
+the 5.8.3 release.
+
+If you are upgrading from an earlier release such as 5.6.1, first read
+the L<perl58delta>, which describes differences between 5.6.0 and
+5.8.0, and the L<perl581delta> and L<perl582delta>, which describe differences
+between 5.8.0, 5.8.1 and 5.8.2
+
+=head1 Incompatible Changes
+
+There are no changes incompatible with 5.8.2.
+
+=head1 Core Enhancements
+
+A C<SCALAR> method is now available for tied hashes. This is called when
+a tied hash is used in scalar context, such as
+
+    if (%tied_hash) {
+	...
+    }
+
+
+The old behaviour was that %tied_hash would return whatever would have been
+returned for that hash before the hash was tied (so usually 0). The new
+behaviour in the absence of a SCALAR method is to return TRUE if in the
+middle of an C<each> iteration, and otherwise call FIRSTKEY to check if the
+hash is empty (making sure that a subsequent C<each> will also begin by
+calling FIRSTKEY). Please see L<perltie/SCALAR> for the full details and
+caveats.
+
+=head1 Modules and Pragmata
+
+=over 4
+
+=item CGI
+
+=item Cwd
+
+=item Digest
+
+=item Digest::MD5
+
+=item Encode
+
+=item File::Spec
+
+=item FindBin
+
+A function C<again> is provided to resolve problems where modules in different
+directories wish to use FindBin.
+
+=item List::Util
+
+You can now weaken references to read only values.
+
+=item Math::BigInt
+
+=item PodParser
+
+=item Pod::Perldoc
+
+=item POSIX
+
+=item Unicode::Collate
+
+=item Unicode::Normalize
+
+=item Test::Harness
+
+=item threads::shared
+
+C<cond_wait> has a new two argument form. C<cond_timedwait> has been added.
+
+=back
+
+=head1 Utility Changes
+
+C<find2perl> now assumes C<-print> as a default action. Previously, it
+needed to be specified explicitly.
+
+A new utility, C<prove>, makes it easy to run an individual regression test
+at the command line. C<prove> is part of Test::Harness, which users of earlier
+Perl versions can install from CPAN.
+
+=head1 New Documentation
+
+The documentation has been revised in places to produce more standard manpages.
+
+The documentation for the special code blocks (BEGIN, CHECK, INIT, END)
+has been improved.
+
+=head1 Installation and Configuration Improvements
+
+Perl now builds on OpenVMS I64
+
+=head1 Selected Bug Fixes
+
+Using substr() on a UTF8 string could cause subsequent accesses on that
+string to return garbage. This was due to incorrect UTF8 offsets being
+cached, and is now fixed.
+
+join() could return garbage when the same join() statement was used to
+process 8 bit data having earlier processed UTF8 data, due to the flags
+on that statement's temporary workspace not being reset correctly. This
+is now fixed.
+
+C<$a .. $b> will now work as expected when either $a or $b is C<undef>
+
+Using Unicode keys with tied hashes should now work correctly.
+
+Reading $^E now preserves $!. Previously, the C code implementing $^E
+did not preserve C<errno>, so reading $^E could cause C<errno> and therefore
+C<$!> to change unexpectedly.
+
+Reentrant functions will (once more) work with C++. 5.8.2 introduced a bugfix
+which accidentally broke the compilation of Perl extensions written in C++
+
+=head1 New or Changed Diagnostics
+
+The fatal error "DESTROY created new reference to dead object" is now
+documented in L<perldiag>.
+
+=head1 Changed Internals
+
+The hash code has been refactored to reduce source duplication. The
+external interface is unchanged, and aside from the bug fixes described
+above, there should be no change in behaviour.
+
+C<hv_clear_placeholders> is now part of the perl API
+
+Some C macros have been tidied. In particular macros which create temporary
+local variables now name these variables more defensively, which should
+avoid bugs where names clash.
+
+<signal.h> is now always included.
+
+=head1 Configuration and Building
+
+C<Configure> now invokes callbacks regardless of the value of the variable
+they are called for. Previously callbacks were only invoked in the
+C<case $variable $define)> branch. This change should only affect platform
+maintainers writing configuration hints files.
+
+=head1 Platform Specific Problems
+
+The regression test ext/threads/shared/t/wait.t fails on early RedHat 9
+and HP-UX 10.20 due to bugs in their threading implementations.
+RedHat users should see https://rhn.redhat.com/errata/RHBA-2003-136.html
+and consider upgrading their glibc.
+
+=head1 Known Problems
+
+Detached threads aren't supported on Windows yet, as they may lead to 
+memory access violation problems.
+
+There is a known race condition opening scripts in C<suidperl>. C<suidperl>
+is neither built nor installed by default, and has been deprecated since
+perl 5.8.0. You are advised to replace use of suidperl with tools such
+as sudo ( http://www.courtesan.com/sudo/ )
+
+We have a backlog of unresolved bugs. Dealing with bugs and bug reports
+is unglamorous work; not something ideally suited to volunteer labour,
+but that is all that we have.
+
+The perl5 development team are implementing changes to help address this
+problem, which should go live in early 2004.
+
+=head1 Future Directions
+
+Code freeze for the next maintenance release (5.8.4) is on March 31st 2004,
+with release expected by mid April. Similarly 5.8.5's freeze will be at
+the end of June, with release by mid July.
+
+=head1 Obituary
+
+Iain 'Spoon' Truskett, Perl hacker, author of <perlreref> and
+contributor to CPAN, died suddenly on 29th December 2003, aged 24.
+He will be missed.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the articles
+recently posted to the comp.lang.perl.misc newsgroup and the perl
+bug database at http://bugs.perl.org.  There may also be
+information at http://www.perl.org, the Perl Home Page.
+
+If you believe you have an unreported bug, please run the B<perlbug>
+program included with your release.  Be sure to trim your bug down
+to a tiny but sufficient test case.  Your bug report, along with the
+output of C<perl -V>, will be sent off to perlbug@perl.org to be
+analysed by the Perl porting team.  You can browse and search
+the Perl 5 bugs at http://bugs.perl.org/
+
+=head1 SEE ALSO
+
+The F<Changes> file for exhaustive details on what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
Index: branches/vendor/third/perl/pod/perlthrtut.pod
===================================================================
--- branches/vendor/third/perl/pod/perlthrtut.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlthrtut.pod (revision 20074)
@@ -102,79 +102,4 @@
 form of the pipeline model. (A version of a prime number generator is
 presented later on.)
-
-=head1 Native threads
-
-There are several different ways to implement threads on a system.  How
-threads are implemented depends both on the vendor and, in some cases,
-the version of the operating system.  Often the first implementation
-will be relatively simple, but later versions of the OS will be more
-sophisticated.
-
-While the information in this section is useful, it's not necessary,
-so you can skip it if you don't feel up to it.
-
-There are three basic categories of threads: user-mode threads, kernel
-threads, and multiprocessor kernel threads.
-
-User-mode threads are threads that live entirely within a program and
-its libraries.  In this model, the OS knows nothing about threads.  As
-far as it's concerned, your process is just a process.
-
-This is the easiest way to implement threads, and the way most OSes
-start.  The big disadvantage is that, since the OS knows nothing about
-threads, if one thread blocks they all do.  Typical blocking activities
-include most system calls, most I/O, and things like sleep().
-
-Kernel threads are the next step in thread evolution.  The OS knows
-about kernel threads, and makes allowances for them.  The main
-difference between a kernel thread and a user-mode thread is
-blocking.  With kernel threads, things that block a single thread don't
-block other threads.  This is not the case with user-mode threads,
-where the kernel blocks at the process level and not the thread level.
-
-This is a big step forward, and can give a threaded program quite a
-performance boost over non-threaded programs.  Threads that block
-performing I/O, for example, won't block threads that are doing other
-things.  Each process still has only one thread running at once,
-though, regardless of how many CPUs a system might have.
-
-Since kernel threading can interrupt a thread at any time, they will
-uncover some of the implicit locking assumptions you may make in your
-program.  For example, something as simple as C<$a = $a + 2> can behave
-unpredictably with kernel threads if $a is visible to other
-threads, as another thread may have changed $a between the time it
-was fetched on the right hand side and the time the new value is
-stored.
-
-Multiprocessor kernel threads are the final step in thread
-support.  With multiprocessor kernel threads on a machine with multiple
-CPUs, the OS may schedule two or more threads to run simultaneously on
-different CPUs.
-
-This can give a serious performance boost to your threaded program,
-since more than one thread will be executing at the same time.  As a
-tradeoff, though, any of those nagging synchronization issues that
-might not have shown with basic kernel threads will appear with a
-vengeance.
-
-In addition to the different levels of OS involvement in threads,
-different OSes (and different thread implementations for a particular
-OS) allocate CPU cycles to threads in different ways.
-
-Cooperative multitasking systems have running threads give up control
-if one of two things happen.  If a thread calls a yield function, it
-gives up control.  It also gives up control if the thread does
-something that would cause it to block, such as perform I/O.  In a
-cooperative multitasking implementation, one thread can starve all the
-others for CPU time if it so chooses.
-
-Preemptive multitasking systems interrupt threads at regular intervals
-while the system decides which thread should run next.  In a preemptive
-multitasking system, one thread usually won't monopolize the CPU.
-
-On some systems, there can be cooperative and preemptive threads
-running simultaneously. (Threads running with realtime priorities
-often behave cooperatively, for example, while threads running at
-normal priorities behave preemptively.)
 
 =head1 What kind of threads are Perl threads?
@@ -332,37 +257,4 @@
 C<create()> is a synonym for C<new()>.
 
-=head2 Giving up control
-
-There are times when you may find it useful to have a thread
-explicitly give up the CPU to another thread.  Your threading package
-might not support preemptive multitasking for threads, for example, or
-you may be doing something processor-intensive and want to make sure
-that the user-interface thread gets called frequently.  Regardless,
-there are times that you might want a thread to give up the processor.
-
-Perl's threading package provides the yield() function that does
-this. yield() is pretty straightforward, and works like this:
-
-    use threads; 
-
-    sub loop {
-	    my $thread = shift;
-	    my $foo = 50;
-	    while($foo--) { print "in thread $thread\n" }
-	    threads->yield;
-	    $foo = 50;
-	    while($foo--) { print "in thread $thread\n" }
-    }
-
-    my $thread1 = threads->new(\&loop, 'first');
-    my $thread2 = threads->new(\&loop, 'second');
-    my $thread3 = threads->new(\&loop, 'third');
-
-It is important to remember that yield() is only a hint to give up the CPU,
-it depends on your hardware, OS and threading libraries what actually happens.
-Therefore it is important to note that one should not build the scheduling of 
-the threads around yield() calls. It might work on your platform but it won't
-work on another platform.
-
 =head2 Waiting For A Thread To Exit
 
@@ -543,5 +435,5 @@
 
 The lock() function takes a shared variable and puts a lock on it.  
-No other thread may lock the variable until the the variable is unlocked
+No other thread may lock the variable until the variable is unlocked
 by the thread holding the lock. Unlocking happens automatically
 when the locking thread exits the outermost block that contains
@@ -640,5 +532,4 @@
     my $thr1 = threads->new(sub { 
         lock($a); 
-        threads->yield; 
         sleep 20; 
         lock($b); 
@@ -646,5 +537,4 @@
     my $thr2 = threads->new(sub { 
         lock($b); 
-        threads->yield; 
         sleep 20; 
         lock($a); 
@@ -725,5 +615,5 @@
 gives a quick demonstration:
 
-    use threads qw(yield); 
+    use threads;
     use Thread::Semaphore; 
 
@@ -744,5 +634,4 @@
             $LocalCopy = $GlobalVariable; 
             print "$TryCount tries left for sub $SubNumber (\$GlobalVariable is $GlobalVariable)\n"; 
-            yield; 
             sleep 2; 
             $LocalCopy++; 
@@ -825,4 +714,37 @@
 for most purposes, queues are simpler to use and more intuitive. See
 L<threads::shared> for more details.
+
+=head2 Giving up control
+
+There are times when you may find it useful to have a thread
+explicitly give up the CPU to another thread.  You may be doing something
+processor-intensive and want to make sure that the user-interface thread
+gets called frequently.  Regardless, there are times that you might want
+a thread to give up the processor.
+
+Perl's threading package provides the yield() function that does
+this. yield() is pretty straightforward, and works like this:
+
+    use threads; 
+
+    sub loop {
+	    my $thread = shift;
+	    my $foo = 50;
+	    while($foo--) { print "in thread $thread\n" }
+	    threads->yield;
+	    $foo = 50;
+	    while($foo--) { print "in thread $thread\n" }
+    }
+
+    my $thread1 = threads->new(\&loop, 'first');
+    my $thread2 = threads->new(\&loop, 'second');
+    my $thread3 = threads->new(\&loop, 'third');
+
+It is important to remember that yield() is only a hint to give up the CPU,
+it depends on your hardware, OS and threading libraries what actually happens.
+B<On many operating systems, yield() is a no-op.>  Therefore it is important
+to note that one should not build the scheduling of the threads around
+yield() calls. It might work on your platform but it won't work on another
+platform.
 
 =head1 General Thread Utility Routines
@@ -961,4 +883,73 @@
 the explanation is much longer than the program.
 
+=head1 Different implementations of threads
+
+Some background on thread implementations from the operating system
+viewpoint.  There are three basic categories of threads: user-mode threads,
+kernel threads, and multiprocessor kernel threads.
+
+User-mode threads are threads that live entirely within a program and
+its libraries.  In this model, the OS knows nothing about threads.  As
+far as it's concerned, your process is just a process.
+
+This is the easiest way to implement threads, and the way most OSes
+start.  The big disadvantage is that, since the OS knows nothing about
+threads, if one thread blocks they all do.  Typical blocking activities
+include most system calls, most I/O, and things like sleep().
+
+Kernel threads are the next step in thread evolution.  The OS knows
+about kernel threads, and makes allowances for them.  The main
+difference between a kernel thread and a user-mode thread is
+blocking.  With kernel threads, things that block a single thread don't
+block other threads.  This is not the case with user-mode threads,
+where the kernel blocks at the process level and not the thread level.
+
+This is a big step forward, and can give a threaded program quite a
+performance boost over non-threaded programs.  Threads that block
+performing I/O, for example, won't block threads that are doing other
+things.  Each process still has only one thread running at once,
+though, regardless of how many CPUs a system might have.
+
+Since kernel threading can interrupt a thread at any time, they will
+uncover some of the implicit locking assumptions you may make in your
+program.  For example, something as simple as C<$a = $a + 2> can behave
+unpredictably with kernel threads if $a is visible to other
+threads, as another thread may have changed $a between the time it
+was fetched on the right hand side and the time the new value is
+stored.
+
+Multiprocessor kernel threads are the final step in thread
+support.  With multiprocessor kernel threads on a machine with multiple
+CPUs, the OS may schedule two or more threads to run simultaneously on
+different CPUs.
+
+This can give a serious performance boost to your threaded program,
+since more than one thread will be executing at the same time.  As a
+tradeoff, though, any of those nagging synchronization issues that
+might not have shown with basic kernel threads will appear with a
+vengeance.
+
+In addition to the different levels of OS involvement in threads,
+different OSes (and different thread implementations for a particular
+OS) allocate CPU cycles to threads in different ways.
+
+Cooperative multitasking systems have running threads give up control
+if one of two things happen.  If a thread calls a yield function, it
+gives up control.  It also gives up control if the thread does
+something that would cause it to block, such as perform I/O.  In a
+cooperative multitasking implementation, one thread can starve all the
+others for CPU time if it so chooses.
+
+Preemptive multitasking systems interrupt threads at regular intervals
+while the system decides which thread should run next.  In a preemptive
+multitasking system, one thread usually won't monopolize the CPU.
+
+On some systems, there can be cooperative and preemptive threads
+running simultaneously. (Threads running with realtime priorities
+often behave cooperatively, for example, while threads running at
+normal priorities behave preemptively.)
+
+Most modern operating systems support preemptive multitasking nowadays.
+
 =head1 Performance considerations
 
@@ -1017,8 +1008,13 @@
 C library call documentation.
 
-In some platforms the thread-safe interfaces may fail if the result
-buffer is too small (for example getgrent() may return quite large
-group member lists).  Perl will retry growing the result buffer
-a few times, but only up to 64k (for safety reasons).
+On some platforms the thread-safe library interfaces may fail if the
+result buffer is too small (for example the user group databases may
+be rather large, and the reentrant interfaces may have to carry around
+a full snapshot of those databases).  Perl will start with a small
+buffer, but keep retrying and growing the result buffer
+until the result fits.  If this limitless growing sounds bad for
+security or memory consumption reasons you can recompile Perl with
+PERL_REENTRANT_MAXSIZE defined to the maximum number of bytes you will
+allow.
 
 =head1 Conclusion
@@ -1101,4 +1097,7 @@
 about thread-safety of perl code.
 
+Rearranged slightly by Elizabeth Mattijsen E<lt>liz@dijkmat.nl<gt> to put
+less emphasis on yield().
+
 =head1 Copyrights
 
@@ -1109,3 +1108,2 @@
 
 For more information please see L<threads> and L<threads::shared>.
-
Index: branches/vendor/third/perl/pod/perlopentut.pod
===================================================================
--- branches/vendor/third/perl/pod/perlopentut.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlopentut.pod (revision 20074)
@@ -6,5 +6,7 @@
 
 Perl has two simple, built-in ways to open files: the shell way for
-convenience, and the C way for precision.  The choice is yours.
+convenience, and the C way for precision.  The shell way also has 2- and
+3-argument forms, which have different semantics for handling the filename.
+The choice is yours.
 
 =head1 Open E<agrave> la shell
@@ -37,5 +39,5 @@
 and the second is a single string comprising both what to open and how
 to open it.  C<open> returns true when it works, and when it fails,
-returns a false value and sets the special variable $! to reflect
+returns a false value and sets the special variable C<$!> to reflect
 the system error.  If the filehandle was previously opened, it will
 be implicitly closed first.
@@ -57,4 +59,12 @@
 If omitted, Perl assumes that you want to open the file for reading.
 
+Note also that the first example uses the C<||> logical operator, and the
+second uses C<or>, which has lower precedence.  Using C<||> in the latter
+examples would effectively mean
+
+    open INFO, ( "<  datafile"  || die "can't open datafile: $!" );
+
+which is definitely not what you want.
+
 The other important thing to notice is that, just as in the shell,
 any white space before or after the filename is ignored.  This is good,
@@ -65,6 +75,6 @@
     open INFO,   "<  datafile"
 
-Ignoring surround whitespace also helps for when you read a filename in
-from a different file, and forget to trim it before opening:
+Ignoring surrounding whitespace also helps for when you read a filename
+in from a different file, and forget to trim it before opening:
 
     $filename = <INFO>;         # oops, \n still there
@@ -77,4 +87,42 @@
 L<"Dispelling the Dweomer">.
 
+There is also a 3-argument version of C<open>, which lets you put the
+special redirection characters into their own argument:
+
+    open( INFO, ">", $datafile ) || die "Can't create $datafile: $!";
+
+In this case, the filename to open is the actual string in C<$datafile>,
+so you don't have to worry about C<$datafile> containing characters
+that might influence the open mode, or whitespace at the beginning of
+the filename that would be absorbed in the 2-argument version.  Also,
+any reduction of unnecessary string interpolation is a good thing.
+
+=head2 Indirect Filehandles
+
+C<open>'s first argument can be a reference to a filehandle.  As of
+perl 5.6.0, if the argument is uninitialized, Perl will automatically
+create a filehandle and put a reference to it in the first argument,
+like so:
+
+    open( my $in, $infile )   or die "Couldn't read $infile: $!";
+    while ( <$in> ) {
+	# do something with $_
+    }
+    close $in;
+
+Indirect filehandles make namespace management easier.  Since filehandles
+are global to the current package, two subroutines trying to open
+C<INFILE> will clash.  With two functions opening indirect filehandles
+like C<my $infile>, there's no clash and no need to worry about future
+conflicts.
+
+Another convenient behavior is that an indirect filehandle automatically
+closes when it goes out of scope or when you undefine it:
+
+    sub firstline {
+	open( my $in, shift ) && return scalar <$in>;
+	# no close() required
+    }
+
 =head2 Pipe Opens
 
@@ -86,5 +134,5 @@
 
 If the leading character is a pipe symbol, C<open> starts up a new
-command and open a write-only filehandle leading into that command.
+command and opens a write-only filehandle leading into that command.
 This lets you write into that handle and have what you write show up on
 that command's standard input.  For example:
@@ -99,5 +147,5 @@
 For example:
 
-    open(NET, "netstat -i -n |")    || die "can't fun netstat: $!";
+    open(NET, "netstat -i -n |")    || die "can't fork netstat: $!";
     while (<NET>) { }               # do something with input
     close(NET)                      || die "can't close netstat: $!";
@@ -165,5 +213,5 @@
 the rescue.  The following command takes all the C, C++, or yacc source
 or header files and changes all their foo's to bar's, leaving
-the old version in the original file name with a ".orig" tacked
+the old version in the original filename with a ".orig" tacked
 on the end:
 
@@ -198,5 +246,5 @@
 make sure it's to your liking.  One reason to do this might be to remove
 command options beginning with a minus.  While you can always roll the
-simple ones by hand, the Getopts modules are good for this.
+simple ones by hand, the Getopts modules are good for this:
 
     use Getopt::Std;
@@ -251,8 +299,8 @@
 and finally the F<f3> file.
 
-Yes, this also means that if you have a file named "-" (and so on) in
-your directory, that they won't be processed as literal files by C<open>.
-You'll need to pass them as "./-" much as you would for the I<rm> program.
-Or you could use C<sysopen> as described below.
+Yes, this also means that if you have files named "-" (and so on) in
+your directory, they won't be processed as literal files by C<open>.
+You'll need to pass them as "./-", much as you would for the I<rm> program,
+or you could use C<sysopen> as described below.
 
 One of the more interesting applications is to change files of a certain
@@ -274,5 +322,5 @@
 If you want the convenience of the shell, then Perl's C<open> is
 definitely the way to go.  On the other hand, if you want finer precision
-than C's simplistic fopen(3S) provides, then you should look to Perl's
+than C's simplistic fopen(3S) provides you should look to Perl's
 C<sysopen>, which is a direct hook into the open(2) system call.
 That does mean it's a bit more involved, but that's the price of 
@@ -311,5 +359,5 @@
 C<O_NOCTTY>, C<O_NDELAY> and C<O_LARGEFILE>.  Consult your open(2)
 manpage or its local equivalent for details.  (Note: starting from
-Perl release 5.6 the O_LARGEFILE flag, if available, is automatically
+Perl release 5.6 the C<O_LARGEFILE> flag, if available, is automatically
 added to the sysopen() flags because large files are the default.)
 
@@ -318,5 +366,5 @@
 you always check the return values in real code.  These aren't quite
 the same, since C<open> will trim leading and trailing white space,
-but you'll get the idea:
+but you'll get the idea.
 
 To open a file for reading:
@@ -342,5 +390,5 @@
 
 And here are things you can do with C<sysopen> that you cannot do with
-a regular C<open>.  As you see, it's just a matter of controlling the
+a regular C<open>.  As you'll see, it's just a matter of controlling the
 flags in the third argument.
 
@@ -380,5 +428,5 @@
 disable the group from writing, and the 007 part would disable others
 from reading, writing, or executing.  Under these conditions, passing
-C<sysopen> 0666 would create a file with mode 0640, since C<0666 &~ 027>
+C<sysopen> 0666 would create a file with mode 0640, since C<0666 & ~027>
 is 0640.
 
@@ -464,5 +512,5 @@
 Leading whitespace is protected by inserting a C<"./"> in front of a
 filename that starts with whitespace.  Trailing whitespace is protected
-by appending an ASCII NUL byte (C<"\0">) at the end off the string.
+by appending an ASCII NUL byte (C<"\0">) at the end of the string.
 
     $file =~ s#^(\s)#./$1#;
@@ -502,7 +550,7 @@
 
 That's because you opened a filehandle FH, and had read in seven records
-from it.  But what was the name of the file, not the handle?
-
-If you aren't running with C<strict refs>, or if you've turn them off
+from it.  But what was the name of the file, rather than the handle?
+
+If you aren't running with C<strict refs>, or if you've turned them off
 temporarily, then all you have to do is this:
 
@@ -555,5 +603,5 @@
 	|| die "can't open output: $!";
 
-And then these can be read directly or passed on to subprocesses.
+And then these can be accessed directly or passed on to subprocesses.
 This makes it look as though the program were initially invoked
 with those redirections from the command line.
@@ -578,9 +626,9 @@
     sub head {
         my $lines = shift || 20;
-        return unless $pid = open(STDOUT, "|-");
+        return if $pid = open(STDOUT, "|-");       # return if parent
         die "cannot fork: $!" unless defined $pid;
         while (<STDIN>) {
+            last if --$lines < 0;
             print;
-            last if --$lines < 0;
         } 
         exit;
@@ -609,5 +657,5 @@
 devices.  Those are all files, too--just not I<plain> files.  This isn't
 the same issue as being a text file. Not all text files are plain files.
-Not all plain files are textfiles.  That's why there are separate C<-f>
+Not all plain files are text files.  That's why there are separate C<-f>
 and C<-T> file tests.
 
@@ -623,6 +671,6 @@
 
 If you want to process directories recursively, it's better to use the
-File::Find module.  For example, this prints out all files recursively,
-add adds a slash to their names if the file is a directory.
+File::Find module.  For example, this prints out all files recursively
+and adds a slash to their names if the file is a directory.
 
     @ARGV = qw(.) unless @ARGV;
@@ -646,4 +694,6 @@
     } 
 
+=head2 Opening Named Pipes
+
 Named pipes are a different matter.  You pretend they're regular files,
 but their opens will normally block until there is both a reader and
@@ -652,5 +702,5 @@
 described in L<perlipc/"Unix-Domain TCP Clients and Servers">.
 
-When it comes to opening devices, it can be easy and it can tricky.
+When it comes to opening devices, it can be easy and it can be tricky.
 We'll assume that if you're opening up a block device, you know what
 you're doing.  The character devices are more interesting.  These are
@@ -670,6 +720,6 @@
     $answer = <TTYIN>;
 
-With descriptors that you haven't opened using C<sysopen>, such as a
-socket, you can set them to be non-blocking using C<fcntl>:
+With descriptors that you haven't opened using C<sysopen>, such as
+sockets, you can set them to be non-blocking using C<fcntl>:
 
     use Fcntl;
@@ -686,4 +736,6 @@
 Check out Term::ReadKey and Term::ReadLine.
 
+=head2 Opening Sockets
+
 What else can you open?  To open a connection using sockets, you won't use
 one of Perl's two open functions.  See 
@@ -721,5 +773,5 @@
 Passing C<sysopen> a non-standard flag option will also open the file in
 binary mode on those systems that support it.  This is the equivalent of
-opening the file normally, then calling C<binmode>ing on the handle.
+opening the file normally, then calling C<binmode> on the handle.
 
     sysopen(BINDAT, "records.data", O_RDWR | O_BINARY)
@@ -727,5 +779,5 @@
 
 Now you can use C<read> and C<print> on that handle without worrying
-about the system non-standard I/O library breaking your data.  It's not
+about the non-standard system I/O library breaking your data.  It's not
 a pretty picture, but then, legacy systems seldom are.  CP/M will be
 with us until the end of days, and after.
@@ -746,5 +798,5 @@
 
 In a multitasking environment, you may need to be careful not to collide
-with other processes who want to do I/O on the same files as others
+with other processes who want to do I/O on the same files as you
 are working on.  You'll often need shared or exclusive locks
 on files for reading and writing respectively.  You might just
@@ -753,9 +805,11 @@
 Never use the existence of a file C<-e $file> as a locking indication,
 because there is a race condition between the test for the existence of
-the file and its creation.  Atomicity is critical.
+the file and its creation.  It's possible for another process to create
+a file in the slice of time between your existence check and your attempt
+to create the file.  Atomicity is critical.
 
 Perl's most portable locking interface is via the C<flock> function,
-whose simplicity is emulated on systems that don't directly support it,
-such as SysV or WindowsNT.  The underlying semantics may affect how
+whose simplicity is emulated on systems that don't directly support it
+such as SysV or Windows.  The underlying semantics may affect how
 it all works, so you should learn how C<flock> is implemented on your
 system's port of Perl.
@@ -843,6 +897,6 @@
 In Perl 5.8.0 a new I/O framework called "PerlIO" was introduced.
 This is a new "plumbing" for all the I/O happening in Perl; for the
-most part everything will work just as it did, but PerlIO brought in
-also some new features, like the capability of think of I/O as "layers".
+most part everything will work just as it did, but PerlIO also brought
+in some new features such as the ability to think of I/O as "layers".
 One I/O layer may in addition to just moving the data also do
 transformations on the data.  Such transformations may include
@@ -857,5 +911,5 @@
 =item *
 
-The three-(or more)-argument form of C<open()> is being used and the
+The three-(or more)-argument form of C<open> is being used and the
 second argument contains something else in addition to the usual
 C<< '<' >>, C<< '>' >>, C<< '>>' >>, C<< '|' >> and their variants,
@@ -866,5 +920,5 @@
 =item *
 
-The two-argument form of C<binmode<open()> is being used, for example
+The two-argument form of C<binmode> is being used, for example
 
     binmode($fh, ":encoding(utf16)");
@@ -872,11 +926,11 @@
 =back
 
-For more detailed discussion about PerlIO see L<perlio>;
+For more detailed discussion about PerlIO see L<PerlIO>;
 for more detailed discussion about Unicode and I/O see L<perluniintro>.
 
 =head1 SEE ALSO 
 
-The C<open> and C<sysopen> function in perlfunc(1);
-the standard open(2), dup(2), fopen(3), and fdopen(3) manpages;
+The C<open> and C<sysopen> functions in perlfunc(1);
+the system open(2), dup(2), fopen(3), and fdopen(3) manpages;
 the POSIX documentation.
 
Index: branches/vendor/third/perl/pod/perlmodstyle.pod
===================================================================
--- branches/vendor/third/perl/pod/perlmodstyle.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlmodstyle.pod (revision 20074)
@@ -138,5 +138,5 @@
 =item *
 
-Specify pre-requisites in Makefile.PL
+Specify pre-requisites in Makefile.PL or Build.PL
 
 =item *
@@ -564,5 +564,31 @@
 
 An INSTALL file should be included, and should contain simple installation 
-instructions (usually "perl Makefile.PL; make; make install").
+instructions. When using ExtUtils::MakeMaker this will usually be:
+
+=over 4
+
+=item perl Makefile.PL
+
+=item make
+
+=item make test
+
+=item make install
+
+=back
+
+When using Module::Build, this will usually be:
+
+=over 4
+
+=item perl Build.PL
+
+=item perl Build
+
+=item perl Build test
+
+=item perl Build install
+
+=back
 
 Release notes or changelogs should be produced for each release of your
@@ -640,14 +666,16 @@
 
 Specify version requirements for other Perl modules in the
-pre-requisites in your Makefile.PL. 
-
-Be sure to specify Perl version requirements both in Makefile.PL and 
-with C<require 5.6.1> or similar.
+pre-requisites in your Makefile.PL or Build.PL.
+
+Be sure to specify Perl version requirements both in Makefile.PL or
+Build.PL and with C<require 5.6.1> or similar. See the section on
+C<use VERSION> of L<perlfunc/require> for details.
 
 =head2 Testing
 
-All modules should be tested before distribution (using "make disttest", 
+All modules should be tested before distribution (using "make disttest"),
 and the tests should also be available to people installing the modules 
 (using "make test").  
+For Module::Build you would use the C<make test> equivalent C<perl Build test>.
 
 The importance of these tests is proportional to the alleged stability of a 
@@ -658,13 +686,15 @@
 development process or your time) include Test::Simple, Carp::Assert 
 and Test::Inline.
+For more sophisticated test suites there are Test::More and Test::MockObject.
 
 =head2 Packaging
 
-Modules should be packaged using the standard MakeMaker tools, allowing
-them to be installed in a consistent manner.  Use "make dist" to create 
-your package.
-
-Tools exist to help you build your module in a MakeMaker-friendly style.  
-These include ExtUtils::ModuleMaker and h2xs.  See also L<perlnewmod>.
+Modules should be packaged using one of the standard packaging tools.
+Currently you have the choice between ExtUtils::MakeMaker and the
+more platform independent Module::Build, allowing modules to be installed in a
+consistent manner.
+When using ExtUtils::MakeMaker, you can use "make dist" to create your
+package. Tools exist to help you to build your module in a MakeMaker-friendly
+style. These include ExtUtils::ModuleMaker and h2xs.  See also L<perlnewmod>.
 
 =head2 Licensing
@@ -676,4 +706,5 @@
 If you don't know what license to use, dual licensing under the GPL
 and Artistic licenses (the same as Perl itself) is a good idea.
+See L<perlgpl> and L<perlartistic>.
 
 =head1 COMMON PITFALLS
@@ -727,7 +758,11 @@
 Verifies your POD's correctness
 
+=item Packaging Tools
+
+L<ExtUtils::MakeMaker>, L<Module::Build>
+
 =item Testing tools
 
-L<Test::Simple>, L<Test::Inline>, L<Carp::Assert>
+L<Test::Simple>, L<Test::Inline>, L<Carp::Assert>, L<Test::More>, L<Test::MockObject>
 
 =item http://pause.perl.org/
Index: branches/vendor/third/perl/pod/perltooc.pod
===================================================================
--- branches/vendor/third/perl/pod/perltooc.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perltooc.pod (revision 20074)
@@ -625,5 +625,5 @@
 object at all.  It's just the class's own name.  A class name is, for
 virtually all intents and purposes, a perfectly acceptable object.
-It has state, behavior, and identify, the three crucial components
+It has state, behavior, and identity, the three crucial components
 of an object system.  It even manifests inheritance, polymorphism,
 and encapsulation.  And what more can you ask of an object?
@@ -693,5 +693,5 @@
 
 Each of these objects' colors is now "vermilion", because that's the
-meta-object's value that attribute, and these objects do not have
+meta-object's value for that attribute, and these objects do not have
 individual color values set.
 
@@ -843,5 +843,5 @@
     sub has_attribute {
 	my($self, $attr)  = @_;
-	my $class = ref $self if $self;
+	my $class = ref($self) || $self;
 	return exists $class->{$attr};  
     } 
Index: branches/vendor/third/perl/pod/perlmodinstall.pod
===================================================================
--- branches/vendor/third/perl/pod/perlmodinstall.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlmodinstall.pod (revision 20074)
@@ -91,5 +91,4 @@
 
       perl Makefile.PL
-      make
       make test
 
@@ -139,17 +138,28 @@
    C. BUILD
 
+You'll need the C<nmake> utility, available at
+ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
+or dmake, available on CPAN.
+http://search.cpan.org/dist/dmake/
+
 Does the module require compilation (i.e. does it have files that end
-in .xs, .c, .h, .y, .cc, .cxx, or .C)?  If it doesn't, go to INSTALL.
-If it does, life is now officially tough for you, because you have to
-compile the module yourself -- no easy feat on Windows.  You'll need
-the C<nmake> utility, available at
-ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
+in .xs, .c, .h, .y, .cc, .cxx, or .C)?  If it does, life is now
+officially tough for you, because you have to compile the module
+yourself -- no easy feat on Windows.  You'll need a compiler such as
+Visual C++.  Alternatively, you can download a pre-built PPM package
+from ActiveState.
+http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/
+
+Go into the newly-created directory and type:
+
+      perl Makefile.PL
+      nmake test
+
 
    D. INSTALL
 
-Copy the module into your Perl's I<lib> directory.  That'll be one
-of the directories you see when you type
-
-   perl -e 'print "@INC"'
+While still in that directory, type:
+
+      nmake install
 
 =item *
@@ -254,5 +264,4 @@
 
       perl Makefile.PL
-      make
       make test
 
@@ -329,5 +338,4 @@
 Now you're ready to build:
 
-    mms
     mms test
 
@@ -426,7 +434,5 @@
 Jon Orwant
 
-orwant@tpj.com
-
-The Perl Journal, http://tpj.com
+orwant@medita.mit.edu
 
 with invaluable help from Chris Nandor, and valuable help from Brandon
@@ -440,5 +446,5 @@
 =head1 COPYRIGHT
 
-Copyright (C) 1998, 2002 Jon Orwant.  All Rights Reserved.
+Copyright (C) 1998, 2002, 2003 Jon Orwant.  All Rights Reserved.
 
 Permission is granted to make and distribute verbatim copies of this
Index: branches/vendor/third/perl/pod/perlre.pod
===================================================================
--- branches/vendor/third/perl/pod/perlre.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlre.pod (revision 20074)
@@ -7,5 +7,5 @@
 This page describes the syntax of regular expressions in Perl.  
 
-if you haven't used regular expressions before, a quick-start
+If you haven't used regular expressions before, a quick-start
 introduction is available in L<perlrequick>, and a longer tutorial
 introduction is available in L<perlretut>.
@@ -122,5 +122,6 @@
 
 (If a curly bracket occurs in any other context, it is treated
-as a regular character.)  The "*" modifier is equivalent to C<{0,}>, the "+"
+as a regular character.  In particular, the lower bound
+is not optional.)  The "*" modifier is equivalent to C<{0,}>, the "+"
 modifier to C<{1,}>, and the "?" modifier to C<{0,1}>.  n and m are limited
 to integral values less than a preset limit defined when perl is built.
@@ -188,4 +189,5 @@
 	NOTE: breaks up characters into their UTF-8 bytes,
 	so you may end up with malformed pieces of UTF-8.
+	Unsupported in lookbehind.
 
 A C<\w> matches a single alphanumeric character (an alphabetic
@@ -399,8 +401,12 @@
 variable. 
 
-The numbered variables ($1, $2, $3, etc.) and the related punctuation
+The numbered match variables ($1, $2, $3, etc.) and the related punctuation
 set (C<$+>, C<$&>, C<$`>, C<$'>, and C<$^N>) are all dynamically scoped
 until the end of the enclosing block or until the next successful
 match, whichever comes first.  (See L<perlsyn/"Compound Statements">.)
+
+B<NOTE>: failed matches in Perl do not reset the match variables,
+which makes easier to write code that tests for a series of more
+specific cases and remembers the best match.
 
 B<WARNING>: Once Perl sees that you need one of C<$&>, C<$`>, or
@@ -563,5 +569,5 @@
 highly experimental, and may be changed or deleted without notice.
 
-This zero-width assertion evaluate any embedded Perl code.  It
+This zero-width assertion evaluates any embedded Perl code.  It
 always succeeds, and its C<code> is not interpolated.  Currently,
 the rules to determine where the C<code> ends are somewhat convoluted.
@@ -574,4 +580,8 @@
   /the (\S+)(?{ $color = $^N }) (\S+)(?{ $animal = $^N })/i;
   print "color = $color, animal = $animal\n";
+
+Inside the C<(?{...})> block, C<$_> refers to the string the regular
+expression is matching against. You can also use C<pos()> to know what is
+the current position of matching withing this string.
 
 The C<code> is properly scoped in the following sense: If the assertion
@@ -626,5 +636,5 @@
 so you should only do so if you are also using taint checking.
 Better yet, use the carefully constrained evaluation within a Safe
-module.  See L<perlsec> for details about both these mechanisms.
+compartment.  See L<perlsec> for details about both these mechanisms.
 
 =item C<(??{ code })>
Index: branches/vendor/third/perl/pod/perltrap.pod
===================================================================
--- branches/vendor/third/perl/pod/perltrap.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perltrap.pod (revision 20074)
@@ -16,4 +16,9 @@
 
 =over 4
+
+=item *
+
+A Perl program executes only once, not once for each input line.  You can
+do an implicit loop with C<-n> or C<-p>.
 
 =item *
@@ -144,7 +149,7 @@
 =back
 
-=head2 C Traps
-
-Cerebral C programmers should take note of the following:
+=head2 C/C++ Traps
+
+Cerebral C and C++ programmers should take note of the following:
 
 =over 4
@@ -160,11 +165,12 @@
 =item *
 
-The C<break> and C<continue> keywords from C become in
-Perl C<last> and C<next>, respectively.
-Unlike in C, these do I<not> work within a C<do { } while> construct.
-
-=item *
-
-There's no switch statement.  (But it's easy to build one on the fly.)
+The C<break> and C<continue> keywords from C become in Perl C<last>
+and C<next>, respectively.  Unlike in C, these do I<not> work within a
+C<do { } while> construct.  See L<perlsyn/"Loop Control">.
+
+=item *
+
+There's no switch statement.  (But it's easy to build one on the fly,
+see L<perlsyn/"Basic BLOCKs and Switch Statements">)
 
 =item *
@@ -174,5 +180,7 @@
 =item *
 
-Comments begin with "#", not "/*".
+Comments begin with "#", not "/*" or "//".  Perl may interpret C/C++
+comments as division operators, unterminated regular expressions or
+the defined-or operator.
 
 =item *
@@ -203,4 +211,9 @@
 
 =over 4
+
+=item *
+
+A Perl program executes only once, not once for each input line.  You can
+do an implicit loop with C<-n> or C<-p>.
 
 =item *
@@ -1224,4 +1237,8 @@
     # perl5 prints: perl5
 
+=item * Regular Expression
+
+Unlike in Ruby, failed matches in Perl do not reset the match variables
+($1, $2, ..., C<$`>, ...).
 
 =back
@@ -1345,11 +1362,10 @@
 =item * Interpolation
 
-Double-quoted strings may no longer end with an unescaped $ or @.
+Double-quoted strings may no longer end with an unescaped $.
 
     $foo = "foo$";
-    $bar = "bar@";
-    print "foo is $foo, bar is $bar\n";
-
-    # perl4 prints: foo is foo$, bar is bar@
+    print "foo is $foo\n";
+
+    # perl4 prints: foo is foo$
     # perl5 errors: Final $ should be \$ or $name
 
@@ -1437,5 +1453,11 @@
 =item * Interpolation
 
-You also have to be careful about array references.
+You also have to be careful about array and hash brackets during
+interpolation.
+
+    print "$foo["
+
+    perl 4 prints: [
+    perl 5 prints: syntax error
 
     print "$foo{"
@@ -1443,4 +1465,11 @@
     perl 4 prints: {
     perl 5 prints: syntax error
+
+Perl 5 is expecting to find an index or key name following the respective
+brackets, as well as an ending bracket of the appropriate type.  In order
+to mimic the behavior of Perl 4, you must escape the bracket like so.
+
+    print "$foo\[";
+    print "$foo\{";
 
 =item * Interpolation
Index: branches/vendor/third/perl/pod/perlhist.pod
===================================================================
--- branches/vendor/third/perl/pod/perlhist.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlhist.pod (revision 20074)
@@ -2,12 +2,4 @@
 
 perlhist - the Perl history records
-
-=begin RCS
-
-#
-# $Id: perlhist.pod,v 1.1.1.3 2003-01-10 13:46:04 zacheiss Exp $
-#
-
-=end RCS
 
 =head1 DESCRIPTION
@@ -33,5 +25,6 @@
 Larry Wall, Andy Dougherty, Tom Christiansen, Charles Bailey, Nick
 Ing-Simmons, Chip Salzenberg, Tim Bunce, Malcolm Beattie, Gurusamy
-Sarathy, Graham Barr, Jarkko Hietaniemi.
+Sarathy, Graham Barr, Jarkko Hietaniemi, Hugo van der Sanden,
+Michael Schwern, Rafael Garcia-Suarez, Nicholas Clark, Richard Clamp.
 
 =head2 PUMPKIN?
@@ -74,4 +67,6 @@
           1.001..10     1988-Jan-30
           1.011..14     1988-Feb-02
+ Schwern  1.0.15        2002-Dec-18     Modernization
+ Richard  1.0.16        2003-Dec-18
 
  Larry   2.000          1988-Jun-05
@@ -354,4 +349,6 @@
           5.6.1-foolish 2001-Apr-01     The "fools-gold" release.
           5.6.1         2001-Apr-08
+ Rafael   5.6.2-RC1     2003-Nov-08
+          5.6.2         2003-Nov-15     Fix new build issues
 
  Jarkko   5.7.0         2000-Sep-02     The 5.7 track: Development.
@@ -363,4 +360,17 @@
           5.8.0-RC3     2002-Jul-13
           5.8.0         2002-Jul-18
+          5.8.1-RC1     2003-Jul-10
+          5.8.1-RC2     2003-Jul-11
+          5.8.1-RC3     2003-Jul-30
+          5.8.1-RC4     2003-Aug-01
+          5.8.1-RC5     2003-Sep-22
+          5.8.1         2003-Sep-25
+ Nicholas 5.8.2-RC1     2003-Oct-27
+          5.8.2-RC2     2003-Nov-03
+          5.8.2         2003-Nov-05
+          5.8.3-RC1     2004-Jan-07
+          5.8.3         2004-Jan-14
+
+ Hugo     5.9.0         2003-Oct-27
 
 =head2 SELECTED RELEASE SIZES
Index: branches/vendor/third/perl/pod/perldata.pod
===================================================================
--- branches/vendor/third/perl/pod/perldata.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perldata.pod (revision 20074)
@@ -8,8 +8,10 @@
 
 Perl has three built-in data types: scalars, arrays of scalars, and
-associative arrays of scalars, known as "hashes".  Normal arrays
-are ordered lists of scalars indexed by number, starting with 0 and with
-negative subscripts counting from the end.  Hashes are unordered
-collections of scalar values indexed by their associated string key.
+associative arrays of scalars, known as "hashes".  A scalar is a 
+single string (of any size, limited only by the available memory),
+number, or a reference to something (which will be discussed
+in L<perlref>).  Normal arrays are ordered lists of scalars indexed
+by number, starting with 0.  Hashes are unordered collections of scalar 
+values indexed by their associated string key.
 
 Values are usually referred to by name, or through a named reference.
@@ -188,6 +190,6 @@
 To find out whether a given string is a valid non-zero number, it's
 sometimes enough to test it against both numeric 0 and also lexical
-"0" (although this will cause B<-w> noises).  That's because strings
-that aren't numbers count as 0, just as they do in B<awk>:
+"0" (although this will cause noises if warnings are on).  That's 
+because strings that aren't numbers count as 0, just as they do in B<awk>:
 
     if ($str == 0 && $str ne "0")  {
@@ -308,6 +310,8 @@
 price is $Z<>100."
 
-    $Price = '$100';	# not interpreted
-    print "The price is $Price.\n";	# interpreted
+    $Price = '$100';	# not interpolated
+    print "The price is $Price.\n";	# interpolated
+
+There is no double interpolation in Perl, so the C<$100> is left as is.
 
 As in some shells, you can enclose the variable name in braces to
@@ -333,4 +337,10 @@
 anything more complicated in the subscript will be interpreted as
 an expression.
+
+=head3 Version Strings
+
+B<Note:> Version Strings (v-strings) have been deprecated.  They will
+not be available after Perl 5.8.  The marginal benefits of v-strings
+were greatly outweighed by the potential for Surprise and Confusion.
 
 A literal of the form C<v1.20.300.4000> is parsed as a string composed
@@ -352,4 +362,14 @@
 Note that using the v-strings for IPv4 addresses is not portable unless
 you also use the inet_aton()/inet_ntoa() routines of the Socket package.
+
+Note that since Perl 5.8.1 the single-number v-strings (like C<v65>)
+are not v-strings before the C<< => >> operator (which is usually used
+to separate a hash key from a hash value), instead they are interpreted
+as literal strings ('v65').  They were v-strings from Perl 5.6.0 to
+Perl 5.8.0, but that caused more confusion and breakage than good.
+Multi-number v-strings like C<v65.66> and C<65.66.67> continue to
+be v-strings always.
+
+=head3 Special Literals
 
 The special literals __FILE__, __LINE__, and __PACKAGE__
@@ -380,4 +400,6 @@
 __DATA__ (or __END__) token has not yet been seen.
 
+=head3 Barewords
+
 A word that has no other interpretation in the grammar will
 be treated as if it were a quoted string.  These are known as
@@ -396,8 +418,10 @@
 by saying C<no strict 'subs'>.
 
+=head3 Array Joining Delimiter
+
 Arrays and slices are interpolated into double-quoted strings
 by joining the elements with the delimiter specified in the C<$">
-variable (C<$LIST_SEPARATOR> in English), space by default.  The
-following are equivalent:
+variable (C<$LIST_SEPARATOR> if "use English;" is specified), 
+space by default.  The following are equivalent:
 
     $temp = join($", @ARGV);
@@ -574,6 +598,7 @@
 pairs.  The C<< => >> operator is mostly just a more visually distinctive
 synonym for a comma, but it also arranges for its left-hand operand to be
-interpreted as a string--if it's a bareword that would be a legal identifier.
-This makes it nice for initializing hashes:
+interpreted as a string -- if it's a bareword that would be a legal simple
+identifier (C<< => >> doesn't quote compound identifiers, that contain
+double colons). This makes it nice for initializing hashes:
 
     %map = (
@@ -605,4 +630,30 @@
 of how to arrange for an output ordering.
 
+=head2 Subscripts
+
+An array is subscripted by specifying a dollary sign (C<$>), then the
+name of the array (without the leading C<@>), then the subscript inside
+square brackets.  For example:
+
+    @myarray = (5, 50, 500, 5000);
+    print "Element Number 2 is", $myarray[2], "\n";
+
+The array indices start with 0. A negative subscript retrieves its 
+value from the end.  In our example, C<$myarray[-1]> would have been 
+5000, and C<$myarray[-2]> would have been 500.
+
+Hash subscripts are similar, only instead of square brackets curly brackets
+are used. For example:
+
+    %scientists = 
+    (
+        "Newton" => "Isaac",
+        "Einstein" => "Albert",
+        "Darwin" => "Charles",
+        "Feynman" => "Richard",
+    );
+
+    print "Darwin's First Name is ", $scientists{"Darwin"}, "\n";
+
 =head2 Slices
 
@@ -645,5 +696,5 @@
     foreach (@array[ 4 .. 10 ]) { s/peter/paul/ } 
 
-    foreach (@hash{keys %hash}) {
+    foreach (@hash{qw[key1 key2]}) {
         s/^\s+//;           # trim leading whitespace
         s/\s+$//;           # trim trailing whitespace
Index: branches/vendor/third/perl/pod/perlsyn.pod
===================================================================
--- branches/vendor/third/perl/pod/perlsyn.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlsyn.pod (revision 20074)
@@ -5,34 +5,38 @@
 =head1 DESCRIPTION
 
-A Perl script consists of a sequence of declarations and statements.
-The sequence of statements is executed just once, unlike in B<sed>
-and B<awk> scripts, where the sequence of statements is executed
-for each input line.  While this means that you must explicitly
-loop over the lines of your input file (or files), it also means
-you have much more control over which files and which lines you look at.
-(Actually, I'm lying--it is possible to do an implicit loop with
-either the B<-n> or B<-p> switch.  It's just not the mandatory
-default like it is in B<sed> and B<awk>.)
-
-Perl is, for the most part, a free-form language.  (The only exception
-to this is format declarations, for obvious reasons.)  Text from a
-C<"#"> character until the end of the line is a comment, and is
-ignored.  If you attempt to use C</* */> C-style comments, it will be
-interpreted either as division or pattern matching, depending on the
-context, and C++ C<//> comments just look like a null regular
-expression, so don't do that.
+A Perl program consists of a sequence of declarations and statements
+which run from the top to the bottom.  Loops, subroutines and other
+control structures allow you to jump around within the code.
+
+Perl is a B<free-form> language, you can format and indent it however
+you like.  Whitespace mostly serves to separate tokens, unlike
+languages like Python where it is an important part of the syntax.
+
+Many of Perl's syntactic elements are B<optional>.  Rather than
+requiring you to put parentheses around every function call and
+declare every variable, you can often leave such explicit elements off
+and Perl will figure out what you meant.  This is known as B<Do What I
+Mean>, abbreviated B<DWIM>.  It allows programmers to be B<lazy> and to
+code in a style with which they are comfortable.
+
+Perl B<borrows syntax> and concepts from many languages: awk, sed, C,
+Bourne Shell, Smalltalk, Lisp and even English.  Other
+languages have borrowed syntax from Perl, particularly its regular
+expression extensions.  So if you have programmed in another language
+you will see familiar pieces in Perl.  They often work the same, but
+see L<perltrap> for information about how they differ.
 
 =head2 Declarations
 
-The only things you need to declare in Perl are report formats
-and subroutines--and even undefined subroutines can be handled
-through AUTOLOAD.  A variable holds the undefined value (C<undef>)
-until it has been assigned a defined value, which is anything
-other than C<undef>.  When used as a number, C<undef> is treated
-as C<0>; when used as a string, it is treated the empty string,
-C<"">; and when used as a reference that isn't being assigned
-to, it is treated as an error.  If you enable warnings, you'll
-be notified of an uninitialized value whenever you treat C<undef>
-as a string or a number.  Well, usually.  Boolean contexts, such as:
+The only things you need to declare in Perl are report formats and
+subroutines (and sometimes not even subroutines).  A variable holds
+the undefined value (C<undef>) until it has been assigned a defined
+value, which is anything other than C<undef>.  When used as a number,
+C<undef> is treated as C<0>; when used as a string, it is treated as
+the empty string, C<"">; and when used as a reference that isn't being
+assigned to, it is treated as an error.  If you enable warnings,
+you'll be notified of an uninitialized value whenever you treat
+C<undef> as a string or a number.  Well, usually.  Boolean contexts,
+such as:
 
     my $a;
@@ -80,14 +84,28 @@
 has both compile-time and run-time effects.
 
-=head2 Simple statements
+=head2 Comments
+
+Text from a C<"#"> character until the end of the line is a comment,
+and is ignored.  Exceptions include C<"#"> inside a string or regular
+expression.
+
+=head2 Simple Statements
 
 The only kind of simple statement is an expression evaluated for its
 side effects.  Every simple statement must be terminated with a
 semicolon, unless it is the final statement in a block, in which case
-the semicolon is optional.  (A semicolon is still encouraged there if the
-block takes up more than one line, because you may eventually add another line.)
-Note that there are some operators like C<eval {}> and C<do {}> that look
-like compound statements, but aren't (they're just TERMs in an expression),
-and thus need an explicit termination if used as the last item in a statement.
+the semicolon is optional.  (A semicolon is still encouraged if the
+block takes up more than one line, because you may eventually add
+another line.)  Note that there are some operators like C<eval {}> and
+C<do {}> that look like compound statements, but aren't (they're just
+TERMs in an expression), and thus need an explicit termination if used
+as the last item in a statement.
+
+=head2 Truth and Falsehood
+
+The number 0, the strings C<'0'> and C<''>, the empty list C<()>, and
+C<undef> are all false in a boolean context. All other values are true.
+
+=head2 Statement Modifiers
 
 Any simple statement may optionally be followed by a I<SINGLE> modifier,
@@ -99,14 +117,34 @@
     while EXPR
     until EXPR
-    foreach EXPR
-
-The C<if> and C<unless> modifiers have the expected semantics,
-presuming you're a speaker of English.  The C<foreach> modifier is an
-iterator:  For each value in EXPR, it aliases C<$_> to the value and
-executes the statement.  The C<while> and C<until> modifiers have the
-usual "C<while> loop" semantics (conditional evaluated first), except
-when applied to a C<do>-BLOCK (or to the deprecated C<do>-SUBROUTINE
-statement), in which case the block executes once before the
-conditional is evaluated.  This is so that you can write loops like:
+    foreach LIST
+
+The C<EXPR> following the modifier is referred to as the "condition".
+Its truth or falsehood determines how the modifier will behave.
+
+C<if> executes the statement once I<if> and only if the condition is
+true.  C<unless> is the opposite, it executes the statement I<unless>
+the condition is true (i.e., if the condition is false).
+
+    print "Basset hounds got long ears" if length $ear >= 10;
+    go_outside() and play() unless $is_raining;
+
+The C<foreach> modifier is an iterator: it executes the statement once
+for each item in the LIST (with C<$_> aliased to each item in turn).
+
+    print "Hello $_!\n" foreach qw(world Dolly nurse);
+
+C<while> repeats the statement I<while> the condition is true.
+C<until> does the opposite, it repeats the statement I<until> the
+condition is true (or while the condition is false):
+
+    # Both of these count from 0 to 10.
+    print $i++ while $i <= 10;
+    print $j++ until $j >  10;
+
+The C<while> and C<until> modifiers have the usual "C<while> loop"
+semantics (conditional evaluated first), except when applied to a
+C<do>-BLOCK (or to the deprecated C<do>-SUBROUTINE statement), in
+which case the block executes once before the conditional is
+evaluated.  This is so that you can write loops like:
 
     do {
@@ -135,5 +173,12 @@
     }
 
-=head2 Compound statements
+B<NOTE:> The behaviour of a C<my> statement modified with a statement
+modifier conditional or loop construct (e.g. C<my $x if ...>) is
+B<undefined>.  The value of the C<my> variable may be C<undef>, any
+previously assigned value, or possibly anything else.  Don't rely on
+it.  Future versions of perl might do something different from the
+version of perl you try it out on.  Here be dragons.
+
+=head2 Compound Statements
 
 In Perl, a sequence of statements that defines a scope is called a block.
@@ -184,17 +229,13 @@
 desperate behavior triggers a warning if you use the C<use warnings>
 pragma or the B<-w> flag.
-Unlike a C<foreach> statement, a C<while> statement never implicitly
-localises any variables.
 
 If there is a C<continue> BLOCK, it is always executed just before the
-conditional is about to be evaluated again, just like the third part of a
-C<for> loop in C.  Thus it can be used to increment a loop variable, even
-when the loop has been continued via the C<next> statement (which is
-similar to the C C<continue> statement).
+conditional is about to be evaluated again.  Thus it can be used to
+increment a loop variable, even when the loop has been continued via
+the C<next> statement.
 
 =head2 Loop Control
 
-The C<next> command is like the C<continue> statement in C; it starts
-the next iteration of the loop:
+The C<next> command starts the next iteration of the loop:
 
     LINE: while (<STDIN>) {
@@ -203,6 +244,5 @@
     }
 
-The C<last> command is like the C<break> statement in C (as used in
-loops); it immediately exits the loop in question.  The
+The C<last> command immediately exits the loop in question.  The
 C<continue> block, if any, is not executed:
 
@@ -311,4 +351,12 @@
     }
 
+Using C<readline> (or the operator form, C<< <EXPR> >>) as the
+conditional of a C<for> loop is shorthand for the following.  This
+behaviour is the same as a C<while> loop conditional.
+
+    for ( prompt(); defined( $_ = <STDIN> ); prompt() ) {
+        # do something
+    }
+
 =head2 Foreach Loops
 
@@ -320,5 +368,6 @@
 the loop.  If the variable was previously declared with C<my>, it uses
 that variable instead of the global one, but it's still localized to
-the loop.  
+the loop.  This implicit localisation occurs I<only> in a C<foreach>
+loop.
 
 The C<foreach> keyword is actually a synonym for the C<for> keyword, so
@@ -429,6 +478,6 @@
 
 (That's actually not as strange as it looks once you realize that you can
-use loop control "operators" within an expression,  That's just the normal
-C comma operator.)
+use loop control "operators" within an expression.  That's just the binary
+comma operator in scalar context.  See L<perlop/"Comma Operator">.)
 
 or
@@ -619,12 +668,18 @@
 =head2 Plain Old Comments (Not!)
 
-Much like the C preprocessor, Perl can process line directives.  Using
+Perl can process line directives, much like the C preprocessor.  Using
 this, one can control Perl's idea of filenames and line numbers in
 error or warning messages (especially for strings that are processed
 with C<eval()>).  The syntax for this mechanism is the same as for most
 C preprocessors: it matches the regular expression
-C</^#\s*line\s+(\d+)\s*(?:\s"([^"]+)")?\s*$/> with C<$1> being the line
-number for the next line, and C<$2> being the optional filename
-(specified within quotes).
+
+    # example: '# line 42 "new_filename.plx"'
+    /^\#   \s*
+      line \s+ (\d+)   \s*
+      (?:\s("?)([^"]+)\2)? \s*
+     $/x
+
+with C<$1> being the line number for the next line, and C<$3> being
+the optional filename (specified with or without quotes).
 
 There is a fairly obvious gotcha included with the line directive:
Index: branches/vendor/third/perl/pod/perlobj.pod
===================================================================
--- branches/vendor/third/perl/pod/perlobj.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlobj.pod (revision 20074)
@@ -275,4 +275,14 @@
         $self->SUPER::display("Name", @args);
     }
+
+It is important to note that C<SUPER> refers to the superclass(es) of the
+I<current package> and not to the superclass(es) of the object. Also, the
+C<SUPER> pseudo-class can only currently be used as a modifier to a method
+name, but not in any of the other ways that class names are normally used,
+eg:
+
+    something->SUPER::method(...);	# OK
+    SUPER::method(...);			# WRONG
+    SUPER->method(...);			# WRONG
 
 Instead of a class name or an object reference, you can also use any
Index: branches/vendor/third/perl/pod/perlembed.pod
===================================================================
--- branches/vendor/third/perl/pod/perlembed.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlembed.pod (revision 20074)
@@ -184,4 +184,5 @@
     int main(int argc, char **argv, char **env)
     {
+	PERL_SYS_INIT3(&argc,&argv,&env);
         my_perl = perl_alloc();
         perl_construct(my_perl);
@@ -191,9 +192,14 @@
         perl_destruct(my_perl);
         perl_free(my_perl);
+	PERL_SYS_TERM();
     }
 
 Notice that we don't use the C<env> pointer.  Normally handed to
 C<perl_parse> as its final argument, C<env> here is replaced by
-C<NULL>, which means that the current environment will be used.
+C<NULL>, which means that the current environment will be used.  The macros
+PERL_SYS_INIT3() and PERL_SYS_TERM() provide system-specific tune up 
+of the C runtime environment necessary to run Perl interpreters; since
+PERL_SYS_INIT3() may change C<env>, it may be more appropriate to provide
+C<env> as an argument to perl_parse().
 
 Now compile this program (I'll call it I<interp.c>) into an executable:
@@ -236,4 +242,5 @@
     {
         char *args[] = { NULL };
+	PERL_SYS_INIT3(&argc,&argv,&env);
         my_perl = perl_alloc();
         perl_construct(my_perl);
@@ -248,4 +255,5 @@
         perl_destruct(my_perl);
         perl_free(my_perl);
+	PERL_SYS_TERM();
     }
 
@@ -309,4 +317,5 @@
        char *embedding[] = { "", "-e", "0" };
 
+       PERL_SYS_INIT3(&argc,&argv,&env);
        my_perl = perl_alloc();
        perl_construct( my_perl );
@@ -330,4 +339,5 @@
        perl_destruct(my_perl);
        perl_free(my_perl);
+       PERL_SYS_TERM();
    }
 
@@ -372,5 +382,5 @@
 Given a pointer to an C<SV> and an C<=~> operation (e.g.,
 C<s/bob/robert/g> or C<tr[A-Z][a-z]>), substitute() modifies the string
-within the C<AV> at according to the operation, returning the number of substitutions
+within the C<SV> as according to the operation, returning the number of substitutions
 made.
 
@@ -386,4 +396,6 @@
  #include <EXTERN.h>
  #include <perl.h>
+
+ static PerlInterpreter *my_perl;
 
  /** my_eval_sv(code, error_check)
@@ -482,16 +494,27 @@
  main (int argc, char **argv, char **env)
  {
-     PerlInterpreter *my_perl = perl_alloc();
      char *embedding[] = { "", "-e", "0" };
      AV *match_list;
      I32 num_matches, i;
-     SV *text = NEWSV(1099,0);
+     SV *text;
      STRLEN n_a;
 
+     PERL_SYS_INIT3(&argc,&argv,&env);
+     my_perl = perl_alloc();
      perl_construct(my_perl);
      perl_parse(my_perl, NULL, 3, embedding, NULL);
      PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
 
-     sv_setpv(text, "When he is at a convenience store and the bill comes to some amount like 76 cents, Maynard is aware that there is something he *should* do, something that will enable him to get back a quarter, but he has no idea *what*.  He fumbles through his red squeezey changepurse and gives the boy three extra pennies with his dollar, hoping that he might luck into the correct amount.  The boy gives him back two of his own pennies and then the big shiny quarter that is his prize. -RICHH");
+     text = NEWSV(1099,0);
+     sv_setpv(text, "When he is at a convenience store and the "
+	"bill comes to some amount like 76 cents, Maynard is "
+	"aware that there is something he *should* do, something "
+	"that will enable him to get back a quarter, but he has "
+	"no idea *what*.  He fumbles through his red squeezey "
+	"changepurse and gives the boy three extra pennies with "
+	"his dollar, hoping that he might luck into the correct "
+	"amount.  The boy gives him back two of his own pennies "
+	"and then the big shiny quarter that is his prize. "
+	"-RICHH");
 
      if (match(text, "m/quarter/")) /** Does text contain 'quarter'? **/
@@ -530,4 +553,5 @@
      perl_destruct(my_perl);
      perl_free(my_perl);
+     PERL_SYS_TERM();
  }
 
@@ -612,4 +636,5 @@
       char *my_argv[] = { "", "power.pl" };
 
+      PERL_SYS_INIT3(&argc,&argv,&env);
       my_perl = perl_alloc();
       perl_construct( my_perl );
@@ -623,4 +648,5 @@
       perl_destruct(my_perl);
       perl_free(my_perl);
+      PERL_SYS_TERM();
     }
 
@@ -748,5 +774,7 @@
  #endif
 
- static PerlInterpreter *perl = NULL;
+ #define BUFFER_SIZE 1024
+
+ static PerlInterpreter *my_perl = NULL;
 
  int
@@ -755,21 +783,24 @@
      char *embedding[] = { "", "persistent.pl" };
      char *args[] = { "", DO_CLEAN, NULL };
-     char filename [1024];
+     char filename[BUFFER_SIZE];
      int exitstatus = 0;
      STRLEN n_a;
 
-     if((perl = perl_alloc()) == NULL) {
+     PERL_SYS_INIT3(&argc,&argv,&env);
+     if((my_perl = perl_alloc()) == NULL) {
         fprintf(stderr, "no memory!");
         exit(1);
      }
-     perl_construct(perl);
-
-     exitstatus = perl_parse(perl, NULL, 2, embedding, NULL);
+     perl_construct(my_perl);
+
+     exitstatus = perl_parse(my_perl, NULL, 2, embedding, NULL);
      PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
      if(!exitstatus) {
-        exitstatus = perl_run(perl);
-
-        while(printf("Enter file name: ") && gets(filename)) {
-
+        exitstatus = perl_run(my_perl);
+
+        while(printf("Enter file name: ") &&
+              fgets(filename, BUFFER_SIZE, stdin)) {
+
+            filename[strlen(filename)-1] = '\0'; /* strip \n */
             /* call the subroutine, passing it the filename as an argument */
             args[0] = filename;
@@ -784,6 +815,7 @@
 
      PL_perl_destruct_level = 0;
-     perl_destruct(perl);
-     perl_free(perl);
+     perl_destruct(my_perl);
+     perl_free(my_perl);
+     PERL_SYS_TERM();
      exit(exitstatus);
  }
@@ -819,5 +851,5 @@
 perl 5.7.2 you can specify C<PL_exit_flags |= PERL_EXIT_DESTRUCT_END>
 to get the new behaviour. This also enables the running of END blocks if
-the perl_prase fails and C<perl_destruct> will return the exit value.
+the perl_parse fails and C<perl_destruct> will return the exit value.
 
 =head2 Maintaining multiple interpreter instances
@@ -836,12 +868,12 @@
 Setting C<PL_perl_destruct_level> to C<1> makes everything squeaky clean:
 
- PL_perl_destruct_level = 1;
-
  while(1) {
      ...
      /* reset global variables here with PL_perl_destruct_level = 1 */
+     PL_perl_destruct_level = 1;
      perl_construct(my_perl);
      ...
      /* clean and reset _everything_ during perl_destruct */
+     PL_perl_destruct_level = 1;
      perl_destruct(my_perl);
      perl_free(my_perl);
@@ -851,12 +883,20 @@
 
 When I<perl_destruct()> is called, the interpreter's syntax parse tree
-and symbol tables are cleaned up, and global variables are reset.
+and symbol tables are cleaned up, and global variables are reset.  The
+second assignment to C<PL_perl_destruct_level> is needed because
+perl_construct resets it to C<0>.
 
 Now suppose we have more than one interpreter instance running at the
 same time.  This is feasible, but only if you used the Configure option
 C<-Dusemultiplicity> or the options C<-Dusethreads -Duseithreads> when
-building Perl.  By default, enabling one of these Configure options
+building perl.  By default, enabling one of these Configure options
 sets the per-interpreter global variable C<PL_perl_destruct_level> to
-C<1>, so that thorough cleaning is automatic.
+C<1>, so that thorough cleaning is automatic and interpreter variables
+are initialized correctly.  Even if you don't intend to run two or
+more interpreters at the same time, but to run them sequentially, like
+in the above example, it is recommended to build perl with the
+C<-Dusemultiplicity> option otherwise some interpreter variables may
+not be initialized correctly between consecutive runs and your
+application may crash.
 
 Using C<-Dusethreads -Duseithreads> rather than C<-Dusemultiplicity>
@@ -878,9 +918,11 @@
  int main(int argc, char **argv, char **env)
  {
-     PerlInterpreter
-         *one_perl = perl_alloc(),
-         *two_perl = perl_alloc();
+     PerlInterpreter *one_perl, *two_perl;
      char *one_args[] = { "one_perl", SAY_HELLO };
      char *two_args[] = { "two_perl", SAY_HELLO };
+
+     PERL_SYS_INIT3(&argc,&argv,&env);
+     one_perl = perl_alloc();
+     two_perl = perl_alloc();
 
      PERL_SET_CONTEXT(one_perl);
@@ -908,4 +950,5 @@
      PERL_SET_CONTEXT(two_perl);
      perl_free(two_perl);
+     PERL_SYS_TERM();
  }
 
@@ -1036,4 +1079,22 @@
 Finally, select Build -> Build interp.exe and you're ready to go.
 
+=head1 Hiding Perl_
+
+If you completely hide the short forms forms of the Perl public API,
+add -DPERL_NO_SHORT_NAMES to the compilation flags.  This means that
+for example instead of writing
+
+    warn("%d bottles of beer on the wall", bottlecount);
+
+you will have to write the explicit full form
+
+    Perl_warn(aTHX_ "%d bottles of beer on the wall", bottlecount);
+
+(See L<perlguts/Background and PERL_IMPLICIT_CONTEXT for the explanation
+of the C<aTHX_>.> )  Hiding the short forms is very useful for avoiding
+all sorts of nasty (C preprocessor or otherwise) conflicts with other
+software packages (Perl defines about 2400 APIs with these short names,
+take or leave few hundred, so there certainly is room for conflict.)
+
 =head1 MORAL
 
@@ -1045,6 +1106,6 @@
 =head1 AUTHOR
 
-Jon Orwant <F<orwant@tpj.com>> and Doug MacEachern
-<F<dougm@osf.org>>, with small contributions from Tim Bunce, Tom
+Jon Orwant <F<orwant@media.mit.edu>> and Doug MacEachern
+<F<dougm@covalent.net>>, with small contributions from Tim Bunce, Tom
 Christiansen, Guy Decoux, Hallvard Furuseth, Dov Grobgeld, and Ilya
 Zakharevich.
Index: branches/vendor/third/perl/pod/podchecker.PL
===================================================================
--- branches/vendor/third/perl/pod/podchecker.PL (revision 17034)
+++ branches/vendor/third/perl/pod/podchecker.PL (revision 20074)
@@ -149,20 +149,28 @@
 my $status = 0;
 @ARGV = qw(-) unless(@ARGV);
-for (@ARGV) {
-    if($_ eq '-') {
-      $_ = "<&STDIN";
+for my $podfile (@ARGV) {
+    if($podfile eq '-') {
+      $podfile = "<&STDIN";
     }
-    elsif(-d) {
-      warn "podchecker: Warning: Ignoring directory '$_'\n";
+    elsif(-d $podfile) {
+      warn "podchecker: Warning: Ignoring directory '$podfile'\n";
       next;
     }
-    my $s = podchecker($_, undef, '-warnings' => $options{warnings});
-    if($s > 0) {
+    my $errors = 
+      podchecker($podfile, undef, '-warnings' => $options{warnings});
+    if($errors > 0) {
         # errors occurred
         $status = 1;
+        printf STDERR ("%s has %d pod syntax %s.\n",
+                       $podfile, $errors,
+                       ($errors == 1) ? "error" : "errors");
     }
-    elsif($s < 0) {
+    elsif($errors < 0) {
         # no pod found
         $status = 2 unless($status);
+        print STDERR "$podfile does not contain any pod commands.\n";
+    }
+    else {
+        print STDERR "$podfile pod syntax OK.\n";
     }
 }
Index: branches/vendor/third/perl/pod/perltoot.pod
===================================================================
--- branches/vendor/third/perl/pod/perltoot.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perltoot.pod (revision 20074)
@@ -754,5 +754,5 @@
     $him->age(1);
 
-    printf "%s is really %s.\n", $him->name, $him->fullname;
+    printf "%s is really %s.\n", $him->name, $him->fullname->as_string;
     printf "%s's age: %d.\n", $him->name, $him->age;
     $him->happy_birthday;
@@ -941,5 +941,6 @@
 from I<within> a method call, though.  Don't try to access anything
 in SUPER:: from anywhere else, because it doesn't exist outside
-an overridden method call.
+an overridden method call. Note that C<SUPER> refers to the superclass of
+the current package, I<not> to the superclass of C<$self>.
 
 Things are getting a bit complicated here.  Have we done anything
@@ -970,5 +971,5 @@
     $boss->peers("Frank", "Felipe", "Faust");
 
-    printf "%s is age %d.\n", $boss->fullname, $boss->age;
+    printf "%s is age %d.\n", $boss->fullname->as_string, $boss->age;
     printf "His peers are: %s\n", join(", ", $boss->peers);
 
Index: branches/vendor/third/perl/pod/perlunicode.pod
===================================================================
--- branches/vendor/third/perl/pod/perlunicode.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlunicode.pod (revision 20074)
@@ -42,4 +42,19 @@
 You can also use the C<encoding> pragma to change the default encoding
 of the data in your script; see L<encoding>.
+
+=item C<use encoding> needed to upgrade non-Latin-1 byte strings
+
+By default, there is a fundamental asymmetry in Perl's unicode model:
+implicit upgrading from byte strings to Unicode strings assumes that
+they were encoded in I<ISO 8859-1 (Latin-1)>, but Unicode strings are
+downgraded with UTF-8 encoding.  This happens because the first 256
+codepoints in Unicode happens to agree with Latin-1.  
+
+If you wish to interpret byte strings as UTF-8 instead, use the
+C<encoding> pragma:
+
+    use encoding 'utf8';
+
+See L</"Byte and Character Semantics"> for more details.
 
 =back
@@ -67,11 +82,4 @@
 external programs, from information provided by the system (such as %ENV),
 or from literals and constants in the source text.
-
-On Windows platforms, if the C<-C> command line switch is used or the
-${^WIDE_SYSTEM_CALLS} global flag is set to C<1>, all system calls
-will use the corresponding wide-character APIs.  This feature is
-available only on Windows to conform to the API standard already
-established for that platform--and there are very few non-Windows
-platforms that have Unicode-aware APIs.
 
 The C<bytes> pragma will always, regardless of platform, force byte
@@ -94,10 +102,10 @@
 
 If strings operating under byte semantics and strings with Unicode
-character data are concatenated, the new string will be upgraded to
-I<ISO 8859-1 (Latin-1)>, even if the old Unicode string used EBCDIC.
-This translation is done without regard to the system's native 8-bit
-encoding, so to change this for systems with non-Latin-1 and 
-non-EBCDIC native encodings use the C<encoding> pragma.  See
-L<encoding>.
+character data are concatenated, the new string will be created by
+decoding the byte strings as I<ISO 8859-1 (Latin-1)>, even if the
+old Unicode string used EBCDIC.  This translation is done without
+regard to the system's native 8-bit encoding.  To change this for
+systems with non-Latin-1 and non-EBCDIC native encodings, use the
+C<encoding> pragma.  See L<encoding>.
 
 Under character semantics, many operations that formerly operated on
@@ -158,4 +166,8 @@
 Unicode properties database.  C<\w> can be used to match a Japanese
 ideograph, for instance.
+
+(However, and as a limitation of the current implementation, using
+C<\w> or C<\W> I<inside> a C<[...]> character class will still match
+with byte semantics.)
 
 =item *
@@ -185,6 +197,10 @@
 equal to C<\P{Tamil}>.
 
+B<NOTE: the properties, scripts, and blocks listed here are as of
+Unicode 3.2.0, March 2002, or Perl 5.8.0, July 2002.  Unicode 4.0.0
+came out in April 2003, and Perl 5.8.1 in September 2003.>
+
 Here are the basic Unicode General Category properties, followed by their
-long form.  You can use either; C<\p{Lu}> and C<\p{LowercaseLetter}>,
+long form.  You can use either; C<\p{Lu}> and C<\p{UppercaseLetter}>,
 for instance, are identical.
 
@@ -599,19 +615,12 @@
 =back
 
-The following cases do not yet work:
-
-=over 8
-
-=item *
-
-the "final sigma" (Greek), and
-
-=item *
-
-anything to with locales (Lithuanian, Turkish, Azeri).
+Things to do with locales (Lithuanian, Turkish, Azeri) do B<not> work
+since Perl does not understand the concept of Unicode locales.
+
+See the Unicode Technical Report #21, Case Mappings, for more details.
 
 =back
 
-See the Unicode Technical Report #21, Case Mappings, for more details.
+=over 4
 
 =item *
@@ -624,8 +633,8 @@
 
 You can define your own character properties by defining subroutines
-whose names begin with "In" or "Is".  The subroutines must be
-visible in the package that uses the properties.  The user-defined
-properties can be used in the regular expression C<\p> and C<\P>
-constructs.
+whose names begin with "In" or "Is".  The subroutines must be defined
+in the C<main> package.  The user-defined properties can be used in the
+regular expression C<\p> and C<\P> constructs.  Note that the effect
+is compile-time and immutable once defined.
 
 The subroutines must return a specially-formatted string, with one
@@ -706,4 +715,54 @@
     }
 
+You can also define your own mappings to be used in the lc(),
+lcfirst(), uc(), and ucfirst() (or their string-inlined versions).
+The principle is the same: define subroutines in the C<main> package
+with names like C<ToLower> (for lc() and lcfirst()), C<ToTitle> (for
+the first character in ucfirst()), and C<ToUpper> (for uc(), and the
+rest of the characters in ucfirst()).
+
+The string returned by the subroutines needs now to be three
+hexadecimal numbers separated by tabulators: start of the source
+range, end of the source range, and start of the destination range.
+For example:
+
+    sub ToUpper {
+	return <<END;
+    0061\t0063\t0041
+    END
+    }
+
+defines an uc() mapping that causes only the characters "a", "b", and
+"c" to be mapped to "A", "B", "C", all other characters will remain
+unchanged.
+
+If there is no source range to speak of, that is, the mapping is from
+a single character to another single character, leave the end of the
+source range empty, but the two tabulator characters are still needed.
+For example:
+
+    sub ToLower {
+	return <<END;
+    0041\t\t0061
+    END
+    }
+
+defines a lc() mapping that causes only "A" to be mapped to "a", all
+other characters will remain unchanged.
+
+(For serious hackers only)  If you want to introspect the default
+mappings, you can find the data in the directory
+C<$Config{privlib}>/F<unicore/To/>.  The mapping data is returned as
+the here-document, and the C<utf8::ToSpecFoo> are special exception
+mappings derived from <$Config{privlib}>/F<unicore/SpecialCasing.txt>.
+The C<Digit> and C<Fold> mappings that one can see in the directory
+are not directly user-accessible, one can use either the
+C<Unicode::UCD> module, or just match case-insensitively (that's when
+the C<Fold> mapping is used).
+
+A final note on the user-defined property tests and mappings: they
+will be used only if the scalar has been marked as having Unicode
+characters.  Old byte-style strings will not be affected.
+
 =head2 Character Encodings for Input and Output
 
@@ -715,5 +774,6 @@
 all the features currently supported.  The references to "Level N"
 and the section numbers refer to the Unicode Technical Report 18,
-"Unicode Regular Expression Guidelines".
+"Unicode Regular Expression Guidelines", version 6 (Unicode 3.2.0,
+Perl 5.8.0).
 
 =over 4
@@ -740,16 +800,16 @@
         [ 7] include Letters in word characters
         [ 8] note that Perl does Full case-folding in matching, not Simple:
-             for example U+1F88 is equivalent with U+1F000 U+03B9,
+             for example U+1F88 is equivalent with U+1F00 U+03B9,
              not with 1F80.  This difference matters for certain Greek
              capital letters with certain modifiers: the Full case-folding
              decomposes the letter, while the Simple case-folding would map
              it to a single character.
-        [ 9] see UTR#13 Unicode Newline Guidelines
-        [10] should do ^ and $ also on \x{85}, \x{2028} and \x{2029})
+        [ 9] see UTR #13 Unicode Newline Guidelines
+        [10] should do ^ and $ also on \x{85}, \x{2028} and \x{2029}
              (should also affect <>, $., and script line numbers)
              (the \x{85}, \x{2028} and \x{2029} do match \s)
 
 [a] You can mimic class subtraction using lookahead.
-For example, what TR18 might write as
+For example, what UTR #18 might write as
 
     [{Greek}-[{UNASSIGNED}]]
@@ -766,4 +826,7 @@
 which will match assigned characters known to be part of the Greek script.
 
+Also see the Unicode::Regex::Set module, it does implement the full
+UTR #18 grouping, intersection, union, and removal (subtraction) syntax.
+
 [b] See L</"User-Defined Character Properties">.
 
@@ -772,15 +835,17 @@
 Level 2 - Extended Unicode Support
 
-        3.1 Surrogates                          - MISSING
-        3.2 Canonical Equivalents               - MISSING       [11][12]
-        3.3 Locale-Independent Graphemes        - MISSING       [13]
-        3.4 Locale-Independent Words            - MISSING       [14]
-        3.5 Locale-Independent Loose Matches    - MISSING       [15]
-
-        [11] see UTR#15 Unicode Normalization
-        [12] have Unicode::Normalize but not integrated to regexes
-        [13] have \X but at this level . should equal that
-        [14] need three classes, not just \w and \W
-        [15] see UTR#21 Case Mappings
+        3.1 Surrogates                          - MISSING	[11]
+        3.2 Canonical Equivalents               - MISSING       [12][13]
+        3.3 Locale-Independent Graphemes        - MISSING       [14]
+        3.4 Locale-Independent Words            - MISSING       [15]
+        3.5 Locale-Independent Loose Matches    - MISSING       [16]
+
+        [11] Surrogates are solely a UTF-16 concept and Perl's internal
+             representation is UTF-8.  The Encode module does UTF-16, though.
+        [12] see UTR#15 Unicode Normalization
+        [13] have Unicode::Normalize but not integrated to regexes
+        [14] have \X but at this level . should equal that
+        [15] need three classes, not just \w and \W
+        [16] see UTR#21 Case Mappings
 
 =item *
@@ -859,5 +924,5 @@
 =item *
 
-UTF-16, UTF-16BE, UTF16-LE, Surrogates, and BOMs (Byte Order Marks)
+UTF-16, UTF-16BE, UTF-16LE, Surrogates, and BOMs (Byte Order Marks)
 
 The followings items are mostly for reference and general Unicode
@@ -911,5 +976,5 @@
 =item *
 
-UTF-32, UTF-32BE, UTF32-LE
+UTF-32, UTF-32BE, UTF-32LE
 
 The UTF-32 family is pretty much like the UTF-16 family, expect that
@@ -1006,8 +1071,8 @@
 =item *
 
-If your locale environment variables (LANGUAGE, LC_ALL, LC_CTYPE, LANG)
-contain the strings 'UTF-8' or 'UTF8' (case-insensitive matching),
-the default encodings of your STDIN, STDOUT, and STDERR, and of
-B<any subsequent file open>, are considered to be UTF-8.
+You can enable automatic UTF-8-ification of your standard file
+handles, default C<open()> layer, and C<@ARGV> by using either
+the C<-C> command line switch or the C<PERL_UNICODE> environment
+variable, see L<perlrun> for the documentation of the C<-C> switch.
 
 =item *
@@ -1019,8 +1084,71 @@
 =back
 
+=head2 When Unicode Does Not Happen
+
+While Perl does have extensive ways to input and output in Unicode,
+and few other 'entry points' like the @ARGV which can be interpreted
+as Unicode (UTF-8), there still are many places where Unicode (in some
+encoding or another) could be given as arguments or received as
+results, or both, but it is not.
+
+The following are such interfaces.  For all of these interfaces Perl
+currently (as of 5.8.3) simply assumes byte strings both as arguments
+and results, or UTF-8 strings if the C<encoding> pragma has been used.
+
+One reason why Perl does not attempt to resolve the role of Unicode in
+this cases is that the answers are highly dependent on the operating
+system and the file system(s).  For example, whether filenames can be
+in Unicode, and in exactly what kind of encoding, is not exactly a
+portable concept.  Similarly for the qx and system: how well will the
+'command line interface' (and which of them?) handle Unicode?
+
+=over 4
+
+=item *
+
+chmod, chmod, chown, chroot, exec, link, lstat, mkdir, 
+rename, rmdir, stat, symlink, truncate, unlink, utime, -X
+
+=item *
+
+%ENV
+
+=item *
+
+glob (aka the <*>)
+
+=item *
+
+open, opendir, sysopen
+
+=item *
+
+qx (aka the backtick operator), system
+
+=item *
+
+readdir, readlink
+
+=back
+
+=head2 Forcing Unicode in Perl (Or Unforcing Unicode in Perl)
+
+Sometimes (see L</"When Unicode Does Not Happen">) there are
+situations where you simply need to force Perl to believe that a byte
+string is UTF-8, or vice versa.  The low-level calls
+utf8::upgrade($bytestring) and utf8::downgrade($utf8string) are
+the answers.
+
+Do not use them without careful thought, though: Perl may easily get
+very confused, angry, or even crash, if you suddenly change the 'nature'
+of scalar like that.  Especially careful you have to be if you use the
+utf8::upgrade(): any random byte string is not valid UTF-8.
+
 =head2 Using Unicode in XS
 
-If you want to handle Perl Unicode in XS extensions, you may find
-the following C APIs useful.  See L<perlapi> for details.
+If you want to handle Perl Unicode in XS extensions, you may find the
+following C APIs useful.  See also L<perlguts/"Unicode Support"> for an
+explanation about Unicode at the XS level, and L<perlapi> for the API
+details.
 
 =over 4
@@ -1042,5 +1170,5 @@
 =item *
 
-C<uvuni_to_utf8(buf, chr>) writes a Unicode character code point into
+C<uvuni_to_utf8(buf, chr)> writes a Unicode character code point into
 a buffer encoding the code point as UTF-8, and returns a pointer
 pointing after the UTF-8 bytes.
@@ -1201,60 +1329,129 @@
 Some functions are slower when working on UTF-8 encoded strings than
 on byte encoded strings.  All functions that need to hop over
-characters such as length(), substr() or index() can work B<much>
-faster when the underlying data are byte-encoded. Witness the
-following benchmark:
-
-  % perl -e '
-  use Benchmark;
-  use strict;
-  our $l = 10000;
-  our $u = our $b = "x" x $l;
-  substr($u,0,1) = "\x{100}";
-  timethese(-2,{
-  LENGTH_B => q{ length($b) },
-  LENGTH_U => q{ length($u) },
-  SUBSTR_B => q{ substr($b, $l/4, $l/2) },
-  SUBSTR_U => q{ substr($u, $l/4, $l/2) },
-  });
-  '
-  Benchmark: running LENGTH_B, LENGTH_U, SUBSTR_B, SUBSTR_U for at least 2 CPU seconds...
-    LENGTH_B:  2 wallclock secs ( 2.36 usr +  0.00 sys =  2.36 CPU) @ 5649983.05/s (n=13333960)
-    LENGTH_U:  2 wallclock secs ( 2.11 usr +  0.00 sys =  2.11 CPU) @ 12155.45/s (n=25648)
-    SUBSTR_B:  3 wallclock secs ( 2.16 usr +  0.00 sys =  2.16 CPU) @ 374480.09/s (n=808877)
-    SUBSTR_U:  2 wallclock secs ( 2.11 usr +  0.00 sys =  2.11 CPU) @ 6791.00/s (n=14329)
-
-The numbers show an incredible slowness on long UTF-8 strings.  You
-should carefully avoid using these functions in tight loops. If you
-want to iterate over characters, the superior coding technique would
-split the characters into an array instead of using substr, as the following
-benchmark shows:
-
-  % perl -e '
-  use Benchmark;
-  use strict;
-  our $l = 10000;
-  our $u = our $b = "x" x $l;
-  substr($u,0,1) = "\x{100}";
-  timethese(-5,{
-  SPLIT_B => q{ for my $c (split //, $b){}  },
-  SPLIT_U => q{ for my $c (split //, $u){}  },
-  SUBSTR_B => q{ for my $i (0..length($b)-1){my $c = substr($b,$i,1);} },
-  SUBSTR_U => q{ for my $i (0..length($u)-1){my $c = substr($u,$i,1);} },
-  });
-  '
-  Benchmark: running SPLIT_B, SPLIT_U, SUBSTR_B, SUBSTR_U for at least 5 CPU seconds...
-     SPLIT_B:  6 wallclock secs ( 5.29 usr +  0.00 sys =  5.29 CPU) @ 56.14/s (n=297)
-     SPLIT_U:  5 wallclock secs ( 5.17 usr +  0.01 sys =  5.18 CPU) @ 55.21/s (n=286)
-    SUBSTR_B:  5 wallclock secs ( 5.34 usr +  0.00 sys =  5.34 CPU) @ 123.22/s (n=658)
-    SUBSTR_U:  7 wallclock secs ( 6.20 usr +  0.00 sys =  6.20 CPU) @  0.81/s (n=5)
-
-Even though the algorithm based on C<substr()> is faster than
-C<split()> for byte-encoded data, it pales in comparison to the speed
-of C<split()> when used with UTF-8 data.
+characters such as length(), substr() or index(), or matching regular
+expressions can work B<much> faster when the underlying data are
+byte-encoded.
+
+In Perl 5.8.0 the slowness was often quite spectacular; in Perl 5.8.1
+a caching scheme was introduced which will hopefully make the slowness
+somewhat less spectacular, at least for some operations.  In general,
+operations with UTF-8 encoded strings are still slower. As an example,
+the Unicode properties (character classes) like C<\p{Nd}> are known to
+be quite a bit slower (5-20 times) than their simpler counterparts
+like C<\d> (then again, there 268 Unicode characters matching C<Nd>
+compared with the 10 ASCII characters matching C<d>).
+
+=head2 Porting code from perl-5.6.X
+
+Perl 5.8 has a different Unicode model from 5.6. In 5.6 the programmer
+was required to use the C<utf8> pragma to declare that a given scope
+expected to deal with Unicode data and had to make sure that only
+Unicode data were reaching that scope. If you have code that is
+working with 5.6, you will need some of the following adjustments to
+your code. The examples are written such that the code will continue
+to work under 5.6, so you should be safe to try them out.
+
+=over 4
+
+=item *
+
+A filehandle that should read or write UTF-8
+
+  if ($] > 5.007) {
+    binmode $fh, ":utf8";
+  }
+
+=item *
+
+A scalar that is going to be passed to some extension
+
+Be it Compress::Zlib, Apache::Request or any extension that has no
+mention of Unicode in the manpage, you need to make sure that the
+UTF-8 flag is stripped off. Note that at the time of this writing
+(October 2002) the mentioned modules are not UTF-8-aware. Please
+check the documentation to verify if this is still true.
+
+  if ($] > 5.007) {
+    require Encode;
+    $val = Encode::encode_utf8($val); # make octets
+  }
+
+=item *
+
+A scalar we got back from an extension
+
+If you believe the scalar comes back as UTF-8, you will most likely
+want the UTF-8 flag restored:
+
+  if ($] > 5.007) {
+    require Encode;
+    $val = Encode::decode_utf8($val);
+  }
+
+=item *
+
+Same thing, if you are really sure it is UTF-8
+
+  if ($] > 5.007) {
+    require Encode;
+    Encode::_utf8_on($val);
+  }
+
+=item *
+
+A wrapper for fetchrow_array and fetchrow_hashref
+
+When the database contains only UTF-8, a wrapper function or method is
+a convenient way to replace all your fetchrow_array and
+fetchrow_hashref calls. A wrapper function will also make it easier to
+adapt to future enhancements in your database driver. Note that at the
+time of this writing (October 2002), the DBI has no standardized way
+to deal with UTF-8 data. Please check the documentation to verify if
+that is still true.
+
+  sub fetchrow {
+    my($self, $sth, $what) = @_; # $what is one of fetchrow_{array,hashref}
+    if ($] < 5.007) {
+      return $sth->$what;
+    } else {
+      require Encode;
+      if (wantarray) {
+        my @arr = $sth->$what;
+        for (@arr) {
+          defined && /[^\000-\177]/ && Encode::_utf8_on($_);
+        }
+        return @arr;
+      } else {
+        my $ret = $sth->$what;
+        if (ref $ret) {
+          for my $k (keys %$ret) {
+            defined && /[^\000-\177]/ && Encode::_utf8_on($_) for $ret->{$k};
+          }
+          return $ret;
+        } else {
+          defined && /[^\000-\177]/ && Encode::_utf8_on($_) for $ret;
+          return $ret;
+        }
+      }
+    }
+  }
+
+
+=item *
+
+A large scalar that you know can only contain ASCII
+
+Scalars that contain only ASCII and are marked as UTF-8 are sometimes
+a drag to your program. If you recognize such a situation, just remove
+the UTF-8 flag:
+
+  utf8::downgrade($val) if $] > 5.007;
+
+=back
 
 =head1 SEE ALSO
 
 L<perluniintro>, L<encoding>, L<Encode>, L<open>, L<utf8>, L<bytes>,
-L<perlretut>, L<perlvar/"${^WIDE_SYSTEM_CALLS}">
+L<perlretut>, L<perlvar/"${^UNICODE}">
 
 =cut
Index: branches/vendor/third/perl/pod/perldebug.pod
===================================================================
--- branches/vendor/third/perl/pod/perldebug.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perldebug.pod (revision 20074)
@@ -39,4 +39,10 @@
 (C<eval>'d) as Perl code in the current package.  (The debugger
 uses the DB package for keeping its own state information.)
+
+Note that the said C<eval> is bound by an implicit scope. As a
+result any newly introduced lexical variable or any modified
+capture buffer content is lost after the eval. The debugger is a
+nice environment to learn Perl, but if you interactively experiment using
+material which should be in the same scope, stuff it in one line.
 
 For any text entered at the debugger prompt, leading and trailing whitespace
@@ -352,5 +358,8 @@
 Set an action (Perl command) to happen before every debugger prompt.
 A multi-line command may be entered by backslashing the newlines.  
-B<WARNING> If C<command> is missing, all actions are wiped out!
+
+=item < * 
+
+Delete all pre-prompt Perl command actions.
 
 =item << command
@@ -368,6 +377,9 @@
 just given a command to return to executing the script.  A multi-line
 command may be entered by backslashing the newlines (we bet you
-couldn't've guessed this by now).  B<WARNING> If C<command> is
-missing, all actions are wiped out!
+couldn't've guessed this by now). 
+
+=item > * 
+
+Delete all post-prompt Perl command actions.
 
 =item >> command
@@ -385,5 +397,4 @@
 Set an action (debugger command) to happen before every debugger prompt.
 A multi-line command may be entered in the customary fashion.  
-B<WARNING> If C<command> is missing, all actions are wiped out!
 
 Because this command is in some senses new, a warning is issued if
@@ -391,4 +402,8 @@
 what you mean to do, write it as with C<;{ ... }> or even 
 C<do { ... }>.
+
+=item { * 
+
+Delete all pre-prompt debugger commands.
 
 =item {{ command
@@ -892,4 +907,13 @@
 by no one but its owner.
 
+You can mock TTY input to debugger by adding arbitrary commands to
+@DB::typeahead. For example, your F<.perldb> file might contain:
+
+    sub afterinit { push @DB::typeahead, "b 4", "b 6"; }
+
+Which would attempt to set breakpoints on lines 4 and 6 immediately
+after debugger initilization. Note that @DB::typeahead is not a supported
+interface and is subject to change in future releases.
+
 If you want to modify the debugger, copy F<perl5db.pl> from the
 Perl library to another name and hack it to your heart's content.
Index: branches/vendor/third/perl/pod/perlxstut.pod
===================================================================
--- branches/vendor/third/perl/pod/perlxstut.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlxstut.pod (revision 20074)
@@ -211,5 +211,5 @@
 	Mytest::hello();
 
-Now we make the script executable (C<chmod -x hello>), run the script
+Now we make the script executable (C<chmod +x hello>), run the script
 and we should see the following output:
 
@@ -693,5 +693,5 @@
 Pay a special attention to the function C<constant>.  This name appears
 twice in the generated .xs file: once in the first part, as a static C
-function, the another time in the second part, when an XSUB interface to
+function, then another time in the second part, when an XSUB interface to
 this static C function is defined.
 
Index: branches/vendor/third/perl/pod/perl572delta.pod
===================================================================
--- branches/vendor/third/perl/pod/perl572delta.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perl572delta.pod (revision 20074)
@@ -90,5 +90,5 @@
 available.
 
-The syntaxes C<@a->[...]> and  C<@h->{...}> have now been deprecated.
+The syntaxes C<< @a->[...] >> and  C<< @h->{...} >> have now been deprecated.
 
 The suidperl is also considered to be too much a risk to continue
@@ -514,5 +514,5 @@
 =item *
 
-Using arrays or hashes as references (e.g. C<%foo->{bar}> has been
+Using arrays or hashes as references (e.g. C<< %foo->{bar} >> has been
 deprecated for a while.  Now you will get an optional warning.
 
Index: branches/vendor/third/perl/pod/perlcompile.pod
===================================================================
--- branches/vendor/third/perl/pod/perlcompile.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlcompile.pod (revision 20074)
@@ -237,7 +237,7 @@
 
 To turn a Perl program into executable byte code, you can use C<perlcc>
-with the C<-b> switch:
-
-  perlcc -b myperlprogram.pl
+with the C<-B> switch:
+
+  perlcc -B myperlprogram.pl
 
 The byte code is machine independent, so once you have a compiled
@@ -257,13 +257,13 @@
 C<require>, etc.
 
-The C<perlcc> tool generates such executables when using the -opt
+The C<perlcc> tool generates such executables when using the -O
 switch.  To compile a Perl program (ending in C<.pl>
 or C<.p>):
 
-  perlcc -opt myperlprogram.pl
+  perlcc -O myperlprogram.pl
 
 To produce a shared library from a Perl module (ending in C<.pm>):
 
-  perlcc -opt Myperlmodule.pm
+  perlcc -O Myperlmodule.pm
 
 For more information, see L<perlcc> and L<B::CC>.
Index: branches/vendor/third/perl/pod/perlfunc.pod
===================================================================
--- branches/vendor/third/perl/pod/perlfunc.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlfunc.pod (revision 20074)
@@ -225,6 +225,6 @@
 C<dbmclose>, C<dbmopen>, C<dump>, C<endgrent>, C<endhostent>,
 C<endnetent>, C<endprotoent>, C<endpwent>, C<endservent>, C<exec>,
-C<fcntl>, C<flock>, C<fork>, C<getgrent>, C<getgrgid>, C<gethostent>,
-C<getlogin>, C<getnetbyaddr>, C<getnetbyname>, C<getnetent>,
+C<fcntl>, C<flock>, C<fork>, C<getgrent>, C<getgrgid>, C<gethostbyname>,
+C<gethostent>, C<getlogin>, C<getnetbyaddr>, C<getnetbyname>, C<getnetent>,
 C<getppid>, C<getprgp>, C<getpriority>, C<getprotobynumber>,
 C<getprotoent>, C<getpwent>, C<getpwnam>, C<getpwuid>,
@@ -247,9 +247,9 @@
 =over 8
 
-=item I<-X> FILEHANDLE
-
-=item I<-X> EXPR
-
-=item I<-X>
+=item -X FILEHANDLE
+
+=item -X EXPR
+
+=item -X
 
 A file test, where X is one of the letters listed below.  This unary
@@ -430,4 +430,6 @@
     }
 
+For more information see L<perlipc>.
+
 =item atan2 Y,X
 
@@ -454,14 +456,31 @@
 binary and text files.  If FILEHANDLE is an expression, the value is
 taken as the name of the filehandle.  Returns true on success,
-C<undef> on failure.
+otherwise it returns C<undef> and sets C<$!> (errno).
+
+On some systems (in general, DOS and Windows-based systems) binmode()
+is necessary when you're not working with a text file.  For the sake
+of portability it is a good idea to always use it when appropriate,
+and to never use it when it isn't appropriate.  Also, people can
+set their I/O to be by default UTF-8 encoded Unicode, not bytes.
+
+In other words: regardless of platform, use binmode() on binary data,
+like for example images.
+
+If LAYER is present it is a single string, but may contain multiple
+directives. The directives alter the behaviour of the file handle.
+When LAYER is present using binmode on text file makes sense.
 
 If LAYER is omitted or specified as C<:raw> the filehandle is made
 suitable for passing binary data. This includes turning off possible CRLF
 translation and marking it as bytes (as opposed to Unicode characters).
-Note that as desipite what may be implied in I<"Programming Perl">
-(the Camel) or elsewhere C<:raw> is I<not> the simply inverse of C<:crlf>
+Note that, despite what may be implied in I<"Programming Perl"> (the
+Camel) or elsewhere, C<:raw> is I<not> the simply inverse of C<:crlf>
 -- other layers which would affect binary nature of the stream are
 I<also> disabled. See L<PerlIO>, L<perlrun> and the discussion about the
 PERLIO environment variable.
+
+The C<:bytes>, C<:crlf>, and C<:utf8>, and any other directives of the
+form C<:...>, are called I/O I<layers>.  The C<open> pragma can be used to
+establish default I/O layers.  See L<open>.
 
 I<The LAYER parameter of the binmode() function is described as "DISCIPLINE"
@@ -472,22 +491,5 @@
 "disciplines".  Now back to the regularly scheduled documentation...>
 
-On some systems (in general, DOS and Windows-based systems) binmode()
-is necessary when you're not working with a text file.  For the sake
-of portability it is a good idea to always use it when appropriate,
-and to never use it when it isn't appropriate.
-
-In other words: regardless of platform, use binmode() on binary files
-(like for example images).
-
-If LAYER is present it is a single string, but may contain
-multiple directives. The directives alter the behaviour of the
-file handle. When LAYER is present using binmode on text
-file makes sense.
-
 To mark FILEHANDLE as UTF-8, use C<:utf8>.
-
-The C<:bytes>, C<:crlf>, and C<:utf8>, and any other directives of the
-form C<:...>, are called I/O I<layers>.  The C<open> pragma can be used to
-establish default I/O layers.  See L<open>.
 
 In general, binmode() should be called after open() but before any I/O
@@ -497,5 +499,7 @@
 changes the default character encoding of the handle, see L<open>.
 The C<:encoding> layer sometimes needs to be called in
-mid-stream, and it doesn't flush the stream.
+mid-stream, and it doesn't flush the stream.  The C<:encoding>
+also implicitly pushes on top of itself the C<:utf8> layer because
+internally Perl will operate on UTF-8 encoded Unicode characters.
 
 The operating system, device drivers, C libraries, and Perl run-time
@@ -725,12 +729,16 @@
 Returns the character represented by that NUMBER in the character set.
 For example, C<chr(65)> is C<"A"> in either ASCII or Unicode, and
-chr(0x263a) is a Unicode smiley face.  Note that characters from 127
-to 255 (inclusive) are by default not encoded in Unicode for backward
-compatibility reasons (but see L<encoding>).
+chr(0x263a) is a Unicode smiley face.  Note that characters from 128
+to 255 (inclusive) are by default not encoded in UTF-8 Unicode for
+backward compatibility reasons (but see L<encoding>).
+
+If NUMBER is omitted, uses C<$_>.
 
 For the reverse, use L</ord>.
+
+Note that under the C<bytes> pragma the NUMBER is masked to
+the low eight bits.
+
 See L<perlunicode> and L<encoding> for more about Unicode.
-
-If NUMBER is omitted, uses C<$_>.
 
 =item chroot FILENAME
@@ -790,7 +798,4 @@
 Closes a directory opened by C<opendir> and returns the success of that
 system call.
-
-DIRHANDLE may be an expression whose value can be used as an indirect
-dirhandle, usually the real dirhandle name.
 
 =item connect SOCKET,NAME
@@ -850,5 +855,5 @@
 guys wearing white hats should do this.
 
-Note that C<crypt> is intended to be a one-way function, much like
+Note that L<crypt|/crypt> is intended to be a one-way function, much like
 breaking eggs to make an omelette.  There is no (known) corresponding
 decrypt function (in other words, the crypt() is a one-way hash
@@ -858,5 +863,5 @@
 When verifying an existing encrypted string you should use the
 encrypted text as the salt (like C<crypt($plain, $crypted) eq
-$crypted>).  This allows your code to work with the standard C<crypt>
+$crypted>).  This allows your code to work with the standard L<crypt|/crypt>
 and with more exotic implementations.  In other words, do not assume
 anything about the returned string itself, or how many bytes in
@@ -872,5 +877,8 @@
 When choosing a new salt create a random two character string whose
 characters come from the set C<[./0-9A-Za-z]> (like C<join '', ('.',
-'/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]>).
+'/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]>).  This set of
+characters is just a recommendation; the characters allowed in
+the salt depend solely on your system's crypt library, and Perl can't
+restrict what salts C<crypt()> accepts.
 
 Here's an example that makes sure that whoever runs this program knows
@@ -894,5 +902,5 @@
 for it is unwise.
 
-The L<crypt> function is unsuitable for encrypting large quantities
+The L<crypt|/crypt> function is unsuitable for encrypting large quantities
 of data, not least of all because you can't get the information
 back.  Look at the F<by-module/Crypt> and F<by-module/PGP> directories
@@ -975,5 +983,5 @@
 You may also use C<defined(&func)> to check whether subroutine C<&func>
 has ever been defined.  The return value is unaffected by any forward
-declarations of C<&foo>.  Note that a subroutine which is not defined
+declarations of C<&func>.  Note that a subroutine which is not defined
 may still be callable: its package may have an C<AUTOLOAD> method that
 makes it spring into existence the first time that it is called -- see
@@ -1026,6 +1034,16 @@
 true for exists() (or 0 if no such element exists).
 
-Returns each element so deleted or the undefined value if there was no such
-element.  Deleting from C<$ENV{}> modifies the environment.  Deleting from
+Returns a list with the same number of elements as the number of elements
+for which deletion was attempted.  Each element of that list consists of
+either the value of the element deleted, or the undefined value.  In scalar
+context, this means that you get the value of the last element deleted (or
+the undefined value if that element did not exist).
+
+    %hash = (foo => 11, bar => 22, baz => 33);
+    $scalar = delete $hash{foo};             # $scalar is 11
+    $scalar = delete @hash{qw(foo bar)};     # $scalar is 22
+    @array  = delete @hash{qw(foo bar baz)}; # @array  is (undef,undef,33)
+
+Deleting from C<%ENV> modifies the environment.  Deleting from
 a hash tied to a DBM file deletes the entry from the DBM file.  Deleting
 from a C<tie>d hash or array may not necessarily return anything.
@@ -1118,5 +1136,5 @@
 C<PROPAGATE> method, that method will be called with additional file
 and line number parameters.  The return value replaces the value in
-C<$@>.  ie. as if C<<$@ = eval { $@->PROPAGATE(__FILE__, __LINE__) };>>
+C<$@>.  ie. as if C<< $@ = eval { $@->PROPAGATE(__FILE__, __LINE__) }; >>
 were called.
 
@@ -1260,7 +1278,9 @@
 
 Entries are returned in an apparently random order.  The actual random
-order is subject to change in future versions of perl, but it is guaranteed
-to be in the same order as either the C<keys> or C<values> function
-would produce on the same (unmodified) hash.
+order is subject to change in future versions of perl, but it is
+guaranteed to be in the same order as either the C<keys> or C<values>
+function would produce on the same (unmodified) hash.  Since Perl
+5.8.1 the ordering is different even between different runs of Perl
+for security reasons (see L<perlsec/"Algorithmic Complexity Attacks">).
 
 When the hash is entirely read, a null array is returned in list context
@@ -1328,10 +1348,9 @@
     # insert dashes just before last line of last file
     while (<>) {
-	if (eof()) {		# check for end of current file
+	if (eof()) {		# check for end of last file
 	    print "--------------\n";
-	    close(ARGV);	# close or last; is needed if we
-				# are reading from the terminal
 	}
 	print;
+	last if eof();          # needed if we're reading from a terminal
     }
 
@@ -1450,4 +1469,9 @@
 C<next>, C<last>, or C<redo> cannot be used to leave or restart the block.
 
+Note that as a very special case, an C<eval ''> executed within the C<DB>
+package doesn't see the usual surrounding lexical scope, but rather the
+scope of the first non-DB piece of code that called it. You don't normally
+need to worry about this unless you are writing a Perl debugger.
+
 =item exec LIST
 
@@ -1634,5 +1658,5 @@
 	or die "can't fcntl F_GETFL: $!";
 
-You don't have to check for C<defined> on the return from C<fnctl>.
+You don't have to check for C<defined> on the return from C<fcntl>.
 Like C<ioctl>, it maps a C<0> return from the system call into
 C<"0 but true"> in Perl.  This string is true in boolean context and C<0>
@@ -1643,4 +1667,16 @@
 doesn't implement fcntl(2).  See the Fcntl module or your fcntl(2)
 manpage to learn what functions are available on your system.
+
+Here's an example of setting a filehandle named C<REMOTE> to be
+non-blocking at the system level.  You'll have to negotiate C<$|>
+on your own, though.
+
+    use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
+
+    $flags = fcntl(REMOTE, F_GETFL, 0)
+                or die "Can't get flags for the socket: $!\n";
+
+    $flags = fcntl(REMOTE, F_SETFL, $flags | O_NONBLOCK)
+                or die "Can't set flags for the socket: $!\n";
 
 =item fileno FILEHANDLE
@@ -1809,9 +1845,9 @@
 
 Returns the next character from the input file attached to FILEHANDLE,
-or the undefined value at end of file, or if there was an error.
-If FILEHANDLE is omitted, reads from STDIN.  This is not particularly
-efficient.  However, it cannot be used by itself to fetch single
-characters without waiting for the user to hit enter.  For that, try
-something more like:
+or the undefined value at end of file, or if there was an error (in
+the latter case C<$!> is set).  If FILEHANDLE is omitted, reads from
+STDIN.  This is not particularly efficient.  However, it cannot be
+used by itself to fetch single characters without waiting for the user
+to hit enter.  For that, try something more like:
 
     if ($BSD_STYLE) {
@@ -1874,4 +1910,11 @@
 Returns the process id of the parent process.
 
+Note for Linux users: on Linux, the C functions C<getpid()> and
+C<getppid()> return different values from different threads. In order to
+be portable, this behavior is not reflected by the perl-level function
+C<getppid()>, that returns a consistent value across threads. If you want
+to call the underlying C<getppid()>, you may use the CPAN module
+C<Linux::Pid>.
+
 =item getpriority WHICH,WHO
 
@@ -1970,5 +2013,5 @@
     $name  = getpwent();
     $gid   = getgrnam($name);
-    $name  = getgrgid($num;
+    $name  = getgrgid($num);
     $name  = getgrent();
     #etc.
@@ -2269,18 +2312,6 @@
     printf "System returned %d\n", $retval;
 
-The special string "C<0> but true" is exempt from B<-w> complaints
+The special string C<"0 but true"> is exempt from B<-w> complaints
 about improper numeric conversions.
-
-Here's an example of setting a filehandle named C<REMOTE> to be
-non-blocking at the system level.  You'll have to negotiate C<$|>
-on your own, though.
-
-    use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
-
-    $flags = fcntl(REMOTE, F_GETFL, 0)
-                or die "Can't get flags for the socket: $!\n";
-
-    $flags = fcntl(REMOTE, F_SETFL, $flags | O_NONBLOCK)
-                or die "Can't set flags for the socket: $!\n";
 
 =item join EXPR,LIST
@@ -2296,11 +2327,18 @@
 =item keys HASH
 
-Returns a list consisting of all the keys of the named hash.  (In
-scalar context, returns the number of keys.)  The keys are returned in
-an apparently random order.  The actual random order is subject to
-change in future versions of perl, but it is guaranteed to be the same
-order as either the C<values> or C<each> function produces (given
-that the hash has not been modified).  As a side effect, it resets
-HASH's iterator.
+Returns a list consisting of all the keys of the named hash.
+(In scalar context, returns the number of keys.)
+
+The keys are returned in an apparently random order.  The actual
+random order is subject to change in future versions of perl, but it
+is guaranteed to be the same order as either the C<values> or C<each>
+function produces (given that the hash has not been modified).  Since
+Perl 5.8.1 the ordering is different even between different runs of
+Perl for security reasons (see L<perlsec/"Algorithmic Complexity
+Attacks">).
+
+As a side effect, calling keys() resets the HASH's internal iterator,
+see L</each>. (In particular, calling keys() in void context resets
+the iterator with no other overhead.)
 
 Here is yet another way to print your environment:
@@ -2355,5 +2393,5 @@
 
 If SIGNAL is zero, no signal is sent to the process.  This is a
-useful way to check that the process is alive and hasn't changed
+useful way to check that a child process is alive and hasn't changed
 its UID.  See L<perlport> for notes on the portability of this
 construct.
@@ -2363,5 +2401,7 @@
 number will also kill process groups, but that's not portable.)  That
 means you usually want to use positive not negative signals.  You may also
-use a signal name in quotes.  See L<perlipc/"Signals"> for details.
+use a signal name in quotes.
+
+See L<perlipc/"Signals"> for more details.
 
 =item last LABEL
@@ -2417,8 +2457,12 @@
 =item length
 
-Returns the length in characters of the value of EXPR.  If EXPR is
+Returns the length in I<characters> of the value of EXPR.  If EXPR is
 omitted, returns length of C<$_>.  Note that this cannot be used on
 an entire array or hash to find out how many elements these have.
 For that, use C<scalar @array> and C<scalar keys %hash> respectively.
+
+Note the I<characters>: if the EXPR is in Unicode, you will get the
+number of characters, not the number of bytes.  To get the length
+in bytes, use C<do { use bytes; length(EXPR) }>, see L<bytes>.
 
 =item link OLDFILE,NEWFILE
@@ -2531,5 +2575,6 @@
 special C<_> filehandle) but stats a symbolic link instead of the file
 the symbolic link points to.  If symbolic links are unimplemented on
-your system, a normal C<stat> is done.
+your system, a normal C<stat> is done.  For much more detailed
+information, please see the documentation for L</stat>.
 
 If EXPR is omitted, stats C<$_>.
@@ -2706,5 +2751,5 @@
 =item no Module
 
-See the L</use> function, which C<no> is the opposite of.
+See the C<use> function, which C<no> is the opposite of.
 
 =item oct EXPR
@@ -2748,9 +2793,9 @@
 introduction you may consider L<perlopentut>.)
 
-If FILEHANDLE is an undefined lexical (C<my>) variable the variable is
-assigned a reference to a new anonymous filehandle, otherwise if
-FILEHANDLE is an expression, its value is used as the name of the real
-filehandle wanted.  (This is considered a symbolic reference, so C<use
-strict 'refs'> should I<not> be in effect.)
+If FILEHANDLE is an undefined scalar variable (or array or hash element)
+the variable is assigned a reference to a new anonymous filehandle,
+otherwise if FILEHANDLE is an expression, its value is used as the name of
+the real filehandle wanted.  (This is considered a symbolic reference, so
+C<use strict 'refs'> should I<not> be in effect.)
 
 If EXPR is omitted, the scalar variable of the same name as the
@@ -2848,5 +2893,8 @@
     open(TMP, "+>", undef) or die ...
 
-opens a filehandle to an anonymous temporary file.
+opens a filehandle to an anonymous temporary file.  Also using "+<"
+works for symmetry, but you really should consider writing something
+to the temporary file first.  You will need to seek() to do the
+reading.
 
 File handles can be opened to "in memory" files held in Perl scalars via:
@@ -2914,12 +2962,12 @@
 
 You may also, in the Bourne shell tradition, specify an EXPR beginning
-with C<< '>&' >>, in which case the rest of the string is interpreted as the
-name of a filehandle (or file descriptor, if numeric) to be
-duped and opened.  You may use C<&> after C<< > >>, C<<< >> >>>,
-C<< < >>, C<< +> >>, C<<< +>> >>>, and C<< +< >>.  The
-mode you specify should match the mode of the original filehandle.
-(Duping a filehandle does not take into account any existing contents of
-IO buffers.) If you use the 3 arg form then you can pass either a number,
-the name of a filehandle or the normal "reference to a glob".
+with C<< '>&' >>, in which case the rest of the string is interpreted
+as the name of a filehandle (or file descriptor, if numeric) to be
+duped (as L<dup(2)>) and opened.  You may use C<&> after C<< > >>,
+C<<< >> >>>, C<< < >>, C<< +> >>, C<<< +>> >>>, and C<< +< >>.
+The mode you specify should match the mode of the original filehandle.
+(Duping a filehandle does not take into account any existing contents
+of IO buffers.) If you use the 3 arg form then you can pass either a
+number, the name of a filehandle or the normal "reference to a glob".
 
 Here is a script that saves, redirects, and restores C<STDOUT> and
@@ -2948,8 +2996,10 @@
     print STDERR "stderr 2\n";
 
-If you specify C<< '<&=N' >>, where C<N> is a number, then Perl will
-do an equivalent of C's C<fdopen> of that file descriptor; this is
-more parsimonious of file descriptors.  For example:
-
+If you specify C<< '<&=X' >>, where C<X> is a file descriptor number
+or a filehandle, then Perl will do an equivalent of C's C<fdopen> of
+that file descriptor (and not call L<dup(2)>); this is more
+parsimonious of file descriptors.  For example:
+
+    # open for input, reusing the fileno of $fd
     open(FILEHANDLE, "<&=$fd")
 
@@ -2958,8 +3008,26 @@
     open(FILEHANDLE, "<&=", $fd)
 
-Note that if Perl is using the standard C libraries' fdopen() then on
-many UNIX systems, fdopen() is known to fail when file descriptors
-exceed a certain value, typically 255. If you need more file
-descriptors than that, consider rebuilding Perl to use the C<PerlIO>.
+or
+
+    # open for append, using the fileno of OLDFH
+    open(FH, ">>&=", OLDFH)
+
+or
+
+    open(FH, ">>&=OLDFH")
+
+Being parsimonious on filehandles is also useful (besides being
+parsimonious) for example when something is dependent on file
+descriptors, like for example locking using flock().  If you do just
+C<< open(A, '>>&B') >>, the filehandle A will not have the same file
+descriptor as B, and therefore flock(A) will not flock(B), and vice
+versa.  But with C<< open(A, '>>&=B') >> the filehandles will share
+the same file descriptor.
+
+Note that if you are using Perls older than 5.8.0, Perl will be using
+the standard C libraries' fdopen() to implement the "=" functionality.
+On many UNIX systems fdopen() fails when file descriptors exceed a
+certain value, typically 255.  For Perls 5.8.0 and later, PerlIO is
+most often the default.
 
 You can see whether Perl has been compiled with PerlIO or not by
@@ -3080,4 +3148,8 @@
 Opens a directory named EXPR for processing by C<readdir>, C<telldir>,
 C<seekdir>, C<rewinddir>, and C<closedir>.  Returns true if successful.
+DIRHANDLE may be an expression whose value can be used as an indirect
+dirhandle, usually the real dirhandle name.  If DIRHANDLE is an undefined
+scalar variable (or array or hash element), the variable is assigned a
+reference to a new anonymous dirhandle.
 DIRHANDLEs have their own namespace separate from FILEHANDLEs.
 
@@ -3250,5 +3322,6 @@
     x	A null byte.
     X	Back up a byte.
-    @	Null fill to absolute position.
+    @	Null fill to absolute position, counted from the start of
+        the innermost ()-group.
     (	Start of a ()-group.
 
@@ -3368,7 +3441,9 @@
 SNMP) and C<N> (for Sun XDR).
 
-The I<string-item> must, at present, be C<"A*">, C<"a*"> or C<"Z*">.
-For C<unpack> the length of the string is obtained from the I<length-item>,
-but if you put in the '*' it will be ignored.
+For C<pack>, the I<string-item> must, at present, be C<"A*">, C<"a*"> or
+C<"Z*">. For C<unpack> the length of the string is obtained from the
+I<length-item>, but if you put in the '*' it will be ignored. For all other
+codes, C<unpack> applies the length value to the next item, which must not
+have a repeat count.
 
     unpack 'C/a', "\04Gurusamy";        gives 'Guru'
@@ -3408,5 +3483,5 @@
        print $Config{longlongsize}, "\n";
 
-(The C<$Config{longlongsize}> will be undefine if your system does
+(The C<$Config{longlongsize}> will be undefined if your system does
 not support long longs.)
 
@@ -3473,10 +3548,11 @@
 =item *
 
-If the pattern begins with a C<U>, the resulting string will be treated
-as Unicode-encoded. You can force UTF8 encoding on in a string with an
-initial C<U0>, and the bytes that follow will be interpreted as Unicode
-characters. If you don't want this to happen, you can begin your pattern
-with C<C0> (or anything else) to force Perl not to UTF8 encode your
-string, and then follow this with a C<U*> somewhere in your pattern.
+If the pattern begins with a C<U>, the resulting string will be
+treated as UTF-8-encoded Unicode. You can force UTF-8 encoding on in a
+string with an initial C<U0>, and the bytes that follow will be
+interpreted as Unicode characters. If you don't want this to happen,
+you can begin your pattern with C<C0> (or anything else) to force Perl
+not to UTF-8 encode your string, and then follow this with a C<U*>
+somewhere in your pattern.
 
 =item *
@@ -3491,6 +3567,12 @@
 
 A ()-group is a sub-TEMPLATE enclosed in parentheses.  A group may
-take a repeat count, both as postfix, and via the C</> template
-character.
+take a repeat count, both as postfix, and for unpack() also via the C</>
+template character. Within each repetition of a group, positioning with
+C<@> starts again at 0. Therefore, the result of
+
+    pack( '@1A((@2A)@3A)', 'a', 'b', 'c' )
+
+is the string "\0a\0\0bc".
+
 
 =item *
@@ -3509,4 +3591,6 @@
 
 A comment in a TEMPLATE starts with C<#> and goes to the end of line.
+White space may be used to separate pack codes from each other, but
+a C<!> modifier and a repeat count must follow immediately.
 
 =item *
@@ -3764,11 +3848,18 @@
 Attempts to read LENGTH I<characters> of data into variable SCALAR
 from the specified FILEHANDLE.  Returns the number of characters
-actually read, C<0> at end of file, or undef if there was an error.
-SCALAR will be grown or shrunk to the length actually read.  If SCALAR
-needs growing, the new bytes will be zero bytes.  An OFFSET may be
-specified to place the read data into some other place in SCALAR than
-the beginning.  The call is actually implemented in terms of either
-Perl's or system's fread() call.  To get a true read(2) system call,
-see C<sysread>.
+actually read, C<0> at end of file, or undef if there was an error (in
+the latter case C<$!> is also set).  SCALAR will be grown or shrunk 
+so that the last character actually read is the last character of the
+scalar after the read.
+
+An OFFSET may be specified to place the read data at some place in the
+string other than the beginning.  A negative OFFSET specifies
+placement at that many characters counting backwards from the end of
+the string.  A positive OFFSET greater than the length of SCALAR
+results in the string being padded to the required size with C<"\0">
+bytes before the result of the read is appended.
+
+The call is actually implemented in terms of either Perl's or system's
+fread() call.  To get a true read(2) system call, see C<sysread>.
 
 Note the I<characters>: depending on the status of the filehandle,
@@ -3776,5 +3867,7 @@
 filehandles operate on bytes, but for example if the filehandle has
 been opened with the C<:utf8> I/O layer (see L</open>, and the C<open>
-pragma, L<open>), the I/O will operate on characters, not bytes.
+pragma, L<open>), the I/O will operate on UTF-8 encoded Unicode
+characters, not bytes.  Similarly for the C<:encoding> pragma:
+in that case pretty much any characters can be read.
 
 =item readdir DIRHANDLE
@@ -3812,4 +3905,19 @@
     $line = <STDIN>;
     $line = readline(*STDIN);		# same thing
+
+If readline encounters an operating system error, C<$!> will be set with the
+corresponding error message.  It can be helpful to check C<$!> when you are
+reading from filehandles you don't trust, such as a tty or a socket.  The
+following example uses the operator form of C<readline>, and takes the necessary
+steps to ensure that C<readline> was successful.
+
+    for (;;) {
+        undef $!;
+        unless (defined( $line = <> )) {
+            die $! if $!;
+            last; # reached EOF
+        }
+        # ...
+    }
 
 =item readlink EXPR
@@ -3848,5 +3956,7 @@
 operate on bytes, but for example if the socket has been changed using
 binmode() to operate with the C<:utf8> I/O layer (see the C<open>
-pragma, L<open>), the I/O will operate on characters, not bytes.
+pragma, L<open>), the I/O will operate on UTF-8 encoded Unicode
+characters, not bytes.  Similarly for the C<:encoding> pragma:
+in that case pretty much any characters can be read.
 
 =item redo LABEL
@@ -3892,5 +4002,6 @@
 =item ref
 
-Returns a true value if EXPR is a reference, false otherwise.  If EXPR
+Returns a non-empty string if EXPR is a reference, the empty
+string otherwise. If EXPR
 is not specified, C<$_> will be used.  The value returned depends on the
 type of thing the reference is a reference to.
@@ -3958,30 +4069,40 @@
 Otherwise, demands that a library file be included if it hasn't already
 been included.  The file is included via the do-FILE mechanism, which is
-essentially just a variety of C<eval>.  Has semantics similar to the following
-subroutine:
+essentially just a variety of C<eval>.  Has semantics similar to the
+following subroutine:
 
     sub require {
-	my($filename) = @_;
-	return 1 if $INC{$filename};
-	my($realfilename,$result);
-	ITER: {
-	    foreach $prefix (@INC) {
-		$realfilename = "$prefix/$filename";
-		if (-f $realfilename) {
-		    $INC{$filename} = $realfilename;
-		    $result = do $realfilename;
-		    last ITER;
-		}
-	    }
-	    die "Can't find $filename in \@INC";
-	}
-	delete $INC{$filename} if $@ || !$result;
-	die $@ if $@;
-	die "$filename did not return true value" unless $result;
-	return $result;
+       my ($filename) = @_;
+       if (exists $INC{$filename}) {
+           return 1 if $INC{$filename};
+           die "Compilation failed in require";
+       }
+       my ($realfilename,$result);
+       ITER: {
+           foreach $prefix (@INC) {
+               $realfilename = "$prefix/$filename";
+               if (-f $realfilename) {
+                   $INC{$filename} = $realfilename;
+                   $result = do $realfilename;
+                   last ITER;
+               }
+           }
+           die "Can't find $filename in \@INC";
+       }
+       if ($@) {
+           $INC{$filename} = undef;
+           die $@;
+       } elsif (!$result) {
+           delete $INC{$filename};
+           die "$filename did not return true value";
+       } else {
+           return $result;
+       }
     }
 
 Note that the file will not be included twice under the same specified
-name.  The file must return true as the last statement to indicate
+name.
+
+The file must return true as the last statement to indicate
 successful execution of any initialization code, so it's customary to
 end such a file with C<1;> unless you're sure it'll return true
@@ -4012,4 +4133,13 @@
 
         eval "require $class";
+
+Now that you understand how C<require> looks for files in the case of
+a bareword argument, there is a little extra functionality going on
+behind the scenes.  Before C<require> looks for a "F<.pm>" extension,
+it will first look for a filename with a "F<.pmc>" extension.  A file
+with this extension is assumed to be Perl bytecode generated by
+L<B::Bytecode|B::Bytecode>.  If this file is found, and it's modification
+time is newer than a coinciding "F<.pm>" non-compiled file, it will be
+loaded in place of that non-compiled file ending in a "F<.pm>" extension.
 
 You can also insert hooks into the import facility, by putting directly
@@ -4144,7 +4274,7 @@
 =item rmdir
 
-Deletes the directory specified by FILENAME if that directory is empty.  If it
-succeeds it returns true, otherwise it returns false and sets C<$!> (errno).  If
-FILENAME is omitted, uses C<$_>.
+Deletes the directory specified by FILENAME if that directory is
+empty.  If it succeeds it returns true, otherwise it returns false and
+sets C<$!> (errno).  If FILENAME is omitted, uses C<$_>.
 
 =item s///
@@ -4367,7 +4497,8 @@
 (8-bit) bytes or characters are sent.  By default all sockets operate
 on bytes, but for example if the socket has been changed using
-binmode() to operate with the C<:utf8> I/O layer (see L</open>, or
-the C<open> pragma, L<open>), the I/O will operate on characters, not
-bytes.
+binmode() to operate with the C<:utf8> I/O layer (see L</open>, or the
+C<open> pragma, L<open>), the I/O will operate on UTF-8 encoded
+Unicode characters, not bytes.  Similarly for the C<:encoding> pragma:
+in that case pretty much any characters can be sent.
 
 =item setpgrp PID,PGRP
@@ -4573,5 +4704,5 @@
 underlying algorithm may not persist into future perls, but the
 ability to characterize the input or output in implementation
-independent ways quite probably will.  See L</use>.
+independent ways quite probably will.  See L<sort>.
 
 Examples:
@@ -4679,4 +4810,13 @@
 sometimes saying the opposite, for example) the results are not
 well-defined.
+
+Because C<< <=> >> returns C<undef> when either operand is C<NaN>
+(not-a-number), and because C<sort> will trigger a fatal error unless the
+result of a comparison is defined, when sorting with a comparison function
+like C<< $a <=> $b >>, be careful about lists that might contain a C<NaN>.
+The following example takes advantage of the fact that C<NaN != NaN> to
+eliminate any C<NaN>s from the input.
+
+    @result = sort { $a <=> $b } grep { $_ == $_ } @input;
 
 =item splice ARRAY,OFFSET,LENGTH,LIST
@@ -4701,5 +4841,5 @@
 end of the array.
 
-The following equivalences hold (assuming C<$[ == 0>):
+The following equivalences hold (assuming C<< $[ == 0 and $#a >= $i >> )
 
     push(@a,$x,$y)	splice(@a,@a,0,$x,$y)
@@ -4707,5 +4847,5 @@
     shift(@a)		splice(@a,0,1)
     unshift(@a,$x,$y)	splice(@a,0,0,$x,$y)
-    $a[$x] = $y		splice(@a,$x,1,$y)
+    $a[$i] = $y		splice(@a,$i,1,$y)
 
 Example, assuming array lengths are passed before arrays:
@@ -4778,6 +4918,6 @@
     ($login, $passwd, $remainder) = split(/:/, $_, 3);
 
-When assigning to a list, if LIMIT is omitted, Perl supplies a LIMIT
-one larger than the number of variables in the list, to avoid
+When assigning to a list, if LIMIT is omitted, or zero, Perl supplies
+a LIMIT one larger than the number of variables in the list, to avoid
 unnecessary work.  For the list above LIMIT would have been 4 by
 default.  In time critical applications it behooves you not to split
@@ -4803,11 +4943,11 @@
 use C</$variable/o>.)
 
-As a special case, specifying a PATTERN of space (C<' '>) will split on
-white space just as C<split> with no arguments does.  Thus, C<split(' ')> can
-be used to emulate B<awk>'s default behavior, whereas C<split(/ /)>
+As a special case, specifying a PATTERN of space (S<C<' '>>) will split on
+white space just as C<split> with no arguments does.  Thus, S<C<split(' ')>> can
+be used to emulate B<awk>'s default behavior, whereas S<C<split(/ /)>>
 will give you as many null initial fields as there are leading spaces.
-A C<split> on C</\s+/> is like a C<split(' ')> except that any leading
+A C<split> on C</\s+/> is like a S<C<split(' ')>> except that any leading
 whitespace produces a null first field.  A C<split> with no arguments
-really does a C<split(' ', $_)> internally.
+really does a S<C<split(' ', $_)>> internally.
 
 A PATTERN of C</^/> is treated as if it were C</^/m>, since it isn't
@@ -4970,6 +5110,6 @@
 You can specify a precision (for numeric conversions) or a maximum
 width (for string conversions) by specifying a C<.> followed by a number.
-For floating point formats, this specifies the number of decimal places
-to show (the default being 6), eg:
+For floating point formats, with the exception of 'g' and 'G', this specifies
+the number of decimal places to show (the default being 6), eg:
 
   # these examples are subject to system-specific variation
@@ -4980,4 +5120,16 @@
   printf '<%.1e>', 10; # prints "<1.0e+01>"
 
+For 'g' and 'G', this specifies the maximum number of digits to show,
+including prior to the decimal point as well as after it, eg:
+
+  # these examples are subject to system-specific variation
+  printf '<%g>', 1;        # prints "<1>"
+  printf '<%.10g>', 1;     # prints "<1>"
+  printf '<%g>', 100;      # prints "<100>"
+  printf '<%.1g>', 100;    # prints "<1e+02>"
+  printf '<%.2g>', 100.01; # prints "<1e+02>"
+  printf '<%.5g>', 100.01; # prints "<100.01>"
+  printf '<%.4g>', 100.01; # prints "<100>"
+
 For integer conversions, specifying a precision implies that the
 output of the number itself should be zero-padded to this width:
@@ -5007,21 +5159,47 @@
 
 For numeric conversions, you can specify the size to interpret the
-number as using C<l>, C<h>, C<V>, C<q>, C<L> or C<ll>. For integer
-conversions, numbers are usually assumed to be whatever the default
-integer size is on your platform (usually 32 or 64 bits), but you
-can override this to use instead one of the standard C types, as
-supported by the compiler used to build Perl:
+number as using C<l>, C<h>, C<V>, C<q>, C<L>, or C<ll>. For integer
+conversions (C<d u o x X b i D U O>), numbers are usually assumed to be
+whatever the default integer size is on your platform (usually 32 or 64
+bits), but you can override this to use instead one of the standard C types,
+as supported by the compiler used to build Perl:
 
    l           interpret integer as C type "long" or "unsigned long"
    h           interpret integer as C type "short" or "unsigned short"
-   q, L or ll  interpret integer as C type "long long" or "unsigned long long"
-               (if your platform supports such a type, else it is an error)
-
-For floating point conversions, numbers are usually assumed to be
-the default floating point size on your platform (double or long double),
-but you can force 'long double' with C<q>, C<L> or C<ll> if your
-platform supports them.
-
-The size specifier 'V' has no effect for Perl code, but it supported
+   q, L or ll  interpret integer as C type "long long", "unsigned long long".
+               or "quads" (typically 64-bit integers)
+
+The last will produce errors if Perl does not understand "quads" in your
+installation. (This requires that either the platform natively supports quads
+or Perl was specifically compiled to support quads.) You can find out
+whether your Perl supports quads via L<Config>:
+
+	use Config;
+	($Config{use64bitint} eq 'define' || $Config{longsize} >= 8) &&
+		print "quads\n";
+
+For floating point conversions (C<e f g E F G>), numbers are usually assumed
+to be the default floating point size on your platform (double or long double),
+but you can force 'long double' with C<q>, C<L>, or C<ll> if your
+platform supports them. You can find out whether your Perl supports long
+doubles via L<Config>:
+
+	use Config;
+	$Config{d_longdbl} eq 'define' && print "long doubles\n";
+
+You can find out whether Perl considers 'long double' to be the default
+floating point size to use on your platform via L<Config>:
+
+        use Config;
+        ($Config{uselongdouble} eq 'define') &&
+                print "long doubles by default\n";
+
+It can also be the case that long doubles and doubles are the same thing:
+
+        use Config;
+        ($Config{doublesize} == $Config{longdblsize}) &&
+                print "doubles are long doubles\n";
+
+The size specifier C<V> has no effect for Perl code, but it is supported
 for compatibility with XS code; it means 'use the standard size for
 a Perl integer (or floating-point number)', which is already the
@@ -5064,42 +5242,4 @@
 point in formatted real numbers is affected by the LC_NUMERIC locale.
 See L<perllocale>.
-
-If Perl understands "quads" (64-bit integers) (this requires
-either that the platform natively support quads or that Perl
-be specifically compiled to support quads), the characters
-
-	d u o x X b i D U O
-
-print quads, and they may optionally be preceded by
-
-	ll L q
-
-For example
-
-	%lld %16LX %qo
-
-You can find out whether your Perl supports quads via L<Config>:
-
-	use Config;
-	($Config{use64bitint} eq 'define' || $Config{longsize} == 8) &&
-		print "quads\n";
-
-If Perl understands "long doubles" (this requires that the platform
-support long doubles), the flags
-
-	e f g E F G
-
-may optionally be preceded by
-
-	ll L
-
-For example
-
-	%llf %Lg
-
-You can find out whether your Perl supports long doubles via L<Config>:
-
-	use Config;
-	$Config{d_longdbl} eq 'define' && print "long doubles\n";
 
 =item sqrt EXPR
@@ -5254,5 +5394,5 @@
     $other_execute =  $mode & S_IXOTH;
 
-    printf "Permissions are %04o\n", S_ISMODE($mode), "\n";
+    printf "Permissions are %04o\n", S_IMODE($mode), "\n";
 
     $is_setuid     =  $mode & S_ISUID;
@@ -5268,5 +5408,6 @@
     S_IRWXO S_IROTH S_IWOTH S_IXOTH
 
-    # Setuid/Setgid/Stickiness.
+    # Setuid/Setgid/Stickiness/SaveText.
+    # Note that the exact meaning of these is system dependent.
 
     S_ISUID S_ISGID S_ISVTX S_ISTXT
@@ -5282,5 +5423,5 @@
 and the S_IF* functions are
 
-    S_IFMODE($mode)	the part of $mode containing the permission bits
+    S_IMODE($mode)	the part of $mode containing the permission bits
 			and the setuid/setgid/sticky bits
 
@@ -5302,4 +5443,7 @@
 See your native chmod(2) and stat(2) documentation for more details
 about the S_* constants.
+
+To get status info for a symbolic link instead of the target file
+behind the link, use the C<lstat> function, see L</stat>.
 
 =item study SCALAR
@@ -5416,4 +5560,14 @@
 just as you can with splice().
 
+If the lvalue returned by substr is used after the EXPR is changed in
+any way, the behaviour may not be as expected and is subject to change.
+This caveat includes code such as C<print(substr($foo,$a,$b)=$bar)> or
+C<(substr($foo,$a,$b)=$bar)=$fud> (where $foo is changed via the
+substring assignment, and then the substr is used again), or where a
+substr() is aliased via a C<foreach> loop or passed as a parameter or
+a reference to it is taken and then the alias, parameter, or deref'd
+reference either is used after the original EXPR has been changed or
+is assigned to and then used a second time.
+
 =item symlink OLDFILE,NEWFILE
 
@@ -5425,5 +5579,5 @@
     $symlink_exists = eval { symlink("",""); 1 };
 
-=item syscall LIST
+=item syscall NUMBER, LIST
 
 Calls the system call specified as the first element of the list,
@@ -5516,18 +5670,13 @@
 =item sysread FILEHANDLE,SCALAR,LENGTH
 
-Attempts to read LENGTH I<characters> of data into variable SCALAR from
-the specified FILEHANDLE, using the system call read(2).  It bypasses
+Attempts to read LENGTH bytes of data into variable SCALAR from the
+specified FILEHANDLE, using the system call read(2).  It bypasses
 buffered IO, so mixing this with other kinds of reads, C<print>,
-C<write>, C<seek>, C<tell>, or C<eof> can cause confusion because
-stdio usually buffers data.  Returns the number of characters actually
-read, C<0> at end of file, or undef if there was an error.  SCALAR
-will be grown or shrunk so that the last byte actually read is the
-last byte of the scalar after the read.
-
-Note the I<characters>: depending on the status of the filehandle,
-either (8-bit) bytes or characters are read.  By default all
-filehandles operate on bytes, but for example if the filehandle has
-been opened with the C<:utf8> I/O layer (see L</open>, and the C<open>
-pragma, L<open>), the I/O will operate on characters, not bytes.
+C<write>, C<seek>, C<tell>, or C<eof> can cause confusion because the
+perlio or stdio layers usually buffers data.  Returns the number of
+bytes actually read, C<0> at end of file, or undef if there was an
+error (in the latter case C<$!> is also set).  SCALAR will be grown or
+shrunk so that the last byte actually read is the last byte of the
+scalar after the read.
 
 An OFFSET may be specified to place the read data at some place in the
@@ -5542,7 +5691,13 @@
 for a return value for 0 to decide whether you're done.
 
+Note that if the filehandle has been marked as C<:utf8> Unicode
+characters are read instead of bytes (the LENGTH, OFFSET, and the
+return value of sysread() are in Unicode characters).
+The C<:encoding(...)> layer implicitly introduces the C<:utf8> layer.
+See L</binmode>, L</open>, and the C<open> pragma, L<open>.
+
 =item sysseek FILEHANDLE,POSITION,WHENCE
 
-Sets FILEHANDLE's system position I<in bytes> using the system call
+Sets FILEHANDLE's system position in bytes using the system call
 lseek(2).  FILEHANDLE may be an expression whose value gives the name
 of the filehandle.  The values for WHENCE are C<0> to set the new
@@ -5556,5 +5711,5 @@
 that would render sysseek() very slow).
 
-sysseek() bypasses normal buffered io, so mixing this with reads (other
+sysseek() bypasses normal buffered IO, so mixing this with reads (other
 than C<sysread>, for example &gt;&lt or read()) C<print>, C<write>,
 C<seek>, C<tell>, or C<eof> may cause confusion.
@@ -5565,5 +5720,5 @@
 than relying on 0, 1, and 2.  For example to define a "systell" function:
 
-	use Fnctl 'SEEK_CUR';
+	use Fcntl 'SEEK_CUR';
 	sub systell { sysseek($_[0], 0, SEEK_CUR) }
 
@@ -5618,7 +5773,15 @@
 C<$?> like this:
 
-    $exit_value  = $? >> 8;
-    $signal_num  = $? & 127;
-    $dumped_core = $? & 128;
+    if ($? == -1) {
+	print "failed to execute: $!\n";
+    }
+    elsif ($? & 127) {
+	printf "child died with signal %d, %s coredump\n",
+	    ($? & 127),  ($? & 128) ? 'with' : 'without';
+    }
+    else {
+	printf "child exited with value %d\n", $? >> 8;
+    }
+
 
 or more portably by using the W*() calls of the POSIX extension;
@@ -5635,11 +5798,12 @@
 =item syswrite FILEHANDLE,SCALAR
 
-Attempts to write LENGTH characters of data from variable SCALAR to
-the specified FILEHANDLE, using the system call write(2).  If LENGTH
-is not specified, writes whole SCALAR.  It bypasses buffered IO, so
+Attempts to write LENGTH bytes of data from variable SCALAR to the
+specified FILEHANDLE, using the system call write(2).  If LENGTH is
+not specified, writes whole SCALAR.  It bypasses buffered IO, so
 mixing this with reads (other than C<sysread())>, C<print>, C<write>,
-C<seek>, C<tell>, or C<eof> may cause confusion because stdio usually
-buffers data.  Returns the number of characters actually written, or
-C<undef> if there was an error.  If the LENGTH is greater than the
+C<seek>, C<tell>, or C<eof> may cause confusion because the perlio and
+stdio layers usually buffers data.  Returns the number of bytes
+actually written, or C<undef> if there was an error (in this case the
+errno variable C<$!> is also set).  If the LENGTH is greater than the
 available data in the SCALAR after the OFFSET, only as much data as is
 available will be written.
@@ -5650,9 +5814,9 @@
 In the case the SCALAR is empty you can use OFFSET but only zero offset.
 
-Note the I<characters>: depending on the status of the filehandle,
-either (8-bit) bytes or characters are written.  By default all
-filehandles operate on bytes, but for example if the filehandle has
-been opened with the C<:utf8> I/O layer (see L</open>, and the open
-pragma, L<open>), the I/O will operate on characters, not bytes.
+Note that if the filehandle has been marked as C<:utf8>, Unicode
+characters are written instead of bytes (the LENGTH, OFFSET, and the
+return value of syswrite() are in UTF-8 encoded Unicode characters).
+The C<:encoding(...)> layer implicitly introduces the C<:utf8> layer.
+See L</binmode>, L</open>, and the C<open> pragma, L<open>.
 
 =item tell FILEHANDLE
@@ -5723,4 +5887,5 @@
     FIRSTKEY this
     NEXTKEY this, lastkey
+    SCALAR this
     DESTROY this
     UNTIE this
@@ -5794,7 +5959,8 @@
 
 For measuring time in better granularity than one second,
-you may use either the Time::HiRes module from CPAN, or
-if you have gettimeofday(2), you may be able to use the
-C<syscall> interface of Perl, see L<perlfaq8> for details.
+you may use either the Time::HiRes module (from CPAN, and starting from
+Perl 5.8 part of the standard distribution), or if you have
+gettimeofday(2), you may be able to use the C<syscall> interface of Perl.
+See L<perlfaq8> for details.
 
 =item times
@@ -5891,5 +6057,5 @@
 Undefines the value of EXPR, which must be an lvalue.  Use only on a
 scalar value, an array (using C<@>), a hash (using C<%>), a subroutine
-(using C<&>), or a typeglob (using <*>).  (Saying C<undef $hash{$key}>
+(using C<&>), or a typeglob (using C<*>).  (Saying C<undef $hash{$key}>
 will probably not do what you expect on most predefined variables or
 DBM list values, so don't do that; see L<delete>.)  Always returns the
@@ -5976,7 +6142,10 @@
 not known to be valid is likely to have disastrous consequences.
 
-If the repeat count of a field is larger than what the remainder of
-the input string allows, repeat count is decreased.  If the input string
-is longer than one described by the TEMPLATE, the rest is ignored.
+If there are more pack codes or if the repeat count of a field or a group
+is larger than what the remainder of the input string allows, the result
+is not well defined: in some cases, the repeat count is decreased, or
+C<unpack()> will produce null strings or zeroes, or terminate with an
+error. If the input string is longer than one described by the TEMPLATE,
+the rest is ignored.
 
 See L</pack> for more examples and notes.
@@ -6100,26 +6269,45 @@
 and modification times, in that order.  Returns the number of files
 successfully changed.  The inode change time of each file is set
-to the current time.  This code has the same effect as the C<touch>
-command if the files already exist:
+to the current time.  For example, this code has the same effect as the
+Unix touch(1) command when the files I<already exist>.
 
     #!/usr/bin/perl
-    $now = time;
-    utime $now, $now, @ARGV;
-
-If the first two elements of the list are C<undef>, then the utime(2)
-function in the C library will be called with a null second argument.
-On most systems, this will set the file's access and modification
-times to the current time.  (i.e. equivalent to the example above.)
+    $atime = $mtime = time;
+    utime $atime, $mtime, @ARGV;
+
+Since perl 5.7.2, if the first two elements of the list are C<undef>, then
+the utime(2) function in the C library will be called with a null second
+argument. On most systems, this will set the file's access and
+modification times to the current time (i.e. equivalent to the example
+above.)
 
     utime undef, undef, @ARGV;
 
+Under NFS this will use the time of the NFS server, not the time of
+the local machine.  If there is a time synchronization problem, the
+NFS server and local machine will have different times.  The Unix
+touch(1) command will in fact normally use this form instead of the
+one shown in the first example.
+
+Note that only passing one of the first two elements as C<undef> will
+be equivalent of passing it as 0 and will not have the same effect as
+described when they are both C<undef>.  This case will also trigger an
+uninitialized warning.
+
 =item values HASH
 
-Returns a list consisting of all the values of the named hash.  (In a
-scalar context, returns the number of values.)  The values are
-returned in an apparently random order.  The actual random order is
-subject to change in future versions of perl, but it is guaranteed to
-be the same order as either the C<keys> or C<each> function would
-produce on the same (unmodified) hash.
+Returns a list consisting of all the values of the named hash.
+(In a scalar context, returns the number of values.)
+
+The values are returned in an apparently random order.  The actual
+random order is subject to change in future versions of perl, but it
+is guaranteed to be the same order as either the C<keys> or C<each>
+function would produce on the same (unmodified) hash.  Since Perl
+5.8.1 the ordering is different even between different runs of Perl
+for security reasons (see L<perlsec/"Algorithmic Complexity Attacks">).
+
+As a side effect, calling values() resets the HASH's internal iterator,
+see L</each>. (In particular, calling values() in void context resets
+the iterator with no other overhead.)
 
 Note that the values are not copied, which means modifying them will
@@ -6129,5 +6317,4 @@
     for (@hash{keys %hash}) { s/foo/bar/g }   # same
 
-As a side effect, calling values() resets the HASH's internal iterator.
 See also C<keys>, C<each>, and C<sort>.
 
@@ -6166,8 +6353,8 @@
 
 The string should not contain any character with the value > 255 (which
-can only happen if you're using UTF8 encoding).  If it does, it will be
-treated as something which is not UTF8 encoded.  When the C<vec> was
+can only happen if you're using UTF-8 encoding).  If it does, it will be
+treated as something which is not UTF-8 encoded.  When the C<vec> was
 assigned to, other parts of your program will also no longer consider the
-string to be UTF8 encoded.  In other words, if you do have such characters
+string to be UTF-8 encoded.  In other words, if you do have such characters
 in your string, vec() will operate on the actual byte string, and not the
 conceptual character string.
Index: branches/vendor/third/perl/pod/pod2usage.PL
===================================================================
--- branches/vendor/third/perl/pod/pod2usage.PL (revision 17034)
+++ branches/vendor/third/perl/pod/pod2usage.PL (revision 20074)
@@ -16,7 +16,6 @@
 $origdir = cwd;
 chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos');  # "case-forgiving"
-$file =~ s/\.pl$/.com/ if ($^O eq 'VMS');              # "case-forgiving"
+$file = basename($0, '.PL');
+$file .= '.com' if $^O eq 'VMS';
 
 open OUT,">$file" or die "Can't create $file: $!";
@@ -127,4 +126,6 @@
 =head1 AUTHOR
 
+Please report bugs using L<http://rt.cpan.org>.
+
 Brad Appleton E<lt>bradapp@enteract.comE<gt>
 
Index: branches/vendor/third/perl/pod/perlmodlib.PL
===================================================================
--- branches/vendor/third/perl/pod/perlmodlib.PL (revision 18449)
+++ branches/vendor/third/perl/pod/perlmodlib.PL (revision 20074)
@@ -8,13 +8,20 @@
 open (MANIFEST, "../MANIFEST") or die $!;
 @MANIFEST = grep !m</(?:t|demo)/>, <MANIFEST>;
-push @MANIFEST, 'lib/Config.pm', 'lib/Errno.pm';
+push @MANIFEST, 'lib/Config.pod', 'lib/Errno.pm', 'lib/lib.pm',
+    'lib/DynaLoader.pm', 'lib/XSLoader.pm';
 
 for (@MANIFEST) {
      my $filename;
      next unless s|^lib/|| or m|^ext/|;
-     ($filename) = m|^(\S+)|;
+     my ($origfilename) = ($filename) = m|^(\S+)|;
      $filename =~ s|^[^/]+/|| if $filename =~ s|^ext/||;
      next unless $filename =~ m!\.p(m|od)$!;
-     next unless open (MOD, "../lib/$filename");
+     unless (open (MOD, "../lib/$filename")) {
+	unless (open (MOD, "../$origfilename")) {
+	    warn "Couldn't open ../$origfilename: $!";
+	    next;
+	}
+	$filename = $origfilename;
+     }
 
 
@@ -38,5 +45,7 @@
 
      my $perlname = $filename;
+     $perlname =~ s!^.*\b(ext|lib)/!!;
      $perlname =~ s!\.p(m|od)$!!;
+     $perlname =~ s!\b(\w+)/\1\b!$1!;
      $perlname =~ s!/!::!g;
 
@@ -69,11 +78,9 @@
 perlmodlib - constructing new Perl modules and finding existing ones
 
-=head1 DESCRIPTION
-
 =head1 THE PERL MODULE LIBRARY
 
-Many modules are included the Perl distribution.  These are described
+Many modules are included in the Perl distribution.  These are described
 below, and all end in F<.pm>.  You may discover compiled library
-file (usually ending in F<.so>) or small pieces of modules to be
+files (usually ending in F<.so>) or small pieces of modules to be
 autoloaded (ending in F<.al>); these were automatically generated
 by the installation process.  You may also discover files in the
@@ -126,4 +133,8 @@
 Exporter module.  See their own documentation for details.
 
+It's possible that not all modules listed below are installed on your
+system. For example, the GDBM_File module will not be installed if you
+don't have the gdbm library.
+
 =over 12
 
@@ -137,8 +148,12 @@
 To find out I<all> modules installed on your system, including
 those without documentation or outside the standard release,
-just do this:
-
-    % find `perl -e 'print "@INC"'` -name '*.pm' -print
-
+just use the following command (under the default win32 shell,
+double quotes should be used instead of single quotes).
+
+    % perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \
+      'find { wanted => sub { print canonpath $_ if /\.pm\z/ },
+      no_chdir => 1 }, @INC'
+
+(The -T is here to prevent '.' from being listed in @INC.)
 They should all have their own documentation installed and accessible
 via your system man(1) command.  If you do not have a B<find>
@@ -149,4 +164,9 @@
 system B<man> command, you might try the B<perldoc> program.
 
+Note also that the command C<perldoc perllocal> gives you a (possibly
+incomplete) list of the modules that have been further installed on
+your system. (The perllocal.pod file is updated by the standard MakeMaker
+install process.)
+
 =head2 Extension Modules
 
@@ -161,5 +181,5 @@
 platforms on which Perl was beta-tested.  You are encouraged to
 look for them on CPAN (described below), or using web search engines
-like Alta Vista or Deja News.
+like Alta Vista or Google.
 
 =head1 CPAN
@@ -287,6 +307,7 @@
 =item South Africa
 
+                      http://ftp.rucus.ru.ac.za/pub/perl/CPAN/
+                      ftp://ftp.rucus.ru.ac.za/pub/perl/CPAN/
                       ftp://ftp.is.co.za/programming/perl/CPAN/
-                      ftp://ftp.mweb.co.za/pub/mirrors/cpan/
                       ftp://ftp.saix.net/pub/CPAN/
                       ftp://ftp.sun.ac.za/CPAN/CPAN/
@@ -300,26 +321,17 @@
 =item China
 
-                      ftp://freesoft.cei.gov.cn/pub/languages/perl/CPAN/
-                      http://www2.linuxforum.net/mirror/CPAN/
+                      http://cpan.linuxforum.net/
                       http://cpan.shellhung.org/
                       ftp://ftp.shellhung.org/pub/CPAN
-
-=item India
-
-                      http://cpan.in.freeos.com
-                      ftp://cpan.in.freeos.com/pub/CPAN/
+                      ftp://mirrors.hknet.com/CPAN
 
 =item Indonesia
 
-                      http://cpan.itb.web.id/
-                      ftp://mirrors.piksi.itb.ac.id/CPAN/
+                      http://mirrors.tf.itb.ac.id/cpan/
                       http://cpan.cbn.net.id/
                       ftp://ftp.cbn.net.id/mirror/CPAN
-                      http://CPAN.mweb.co.id/
-                      ftp://ftp.mweb.co.id/pub/languages/perl/CPAN/
 
 =item Israel
 
-                      http://www.iglu.org.il:/pub/CPAN/
                       ftp://ftp.iglu.org.il/pub/CPAN/
                       http://cpan.lerner.co.il/
@@ -331,25 +343,21 @@
                       ftp://ftp.u-aizu.ac.jp/pub/CPAN
                       ftp://ftp.kddlabs.co.jp/CPAN/
-                      http://mirror.nucba.ac.jp/mirror/Perl/
-                      ftp://mirror.nucba.ac.jp/mirror/Perl/
-                      ftp://ftp.meisei-u.ac.jp/pub/CPAN/
                       ftp://ftp.ayamura.org/pub/CPAN/
                       ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
+                      http://ftp.cpan.jp/
+                      ftp://ftp.cpan.jp/CPAN/
                       ftp://ftp.dti.ad.jp/pub/lang/CPAN/
                       ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
 
-=item Korea
-
-                      http://mirror.Mazic.org/pub/CPAN
-                      ftp://mirror.Mazic.org/pub/CPAN
-
-=item Philippines
-
-                      http://www.adzu.edu.ph/CPAN
+=item Malaysia
+
+                      http://cpan.MyBSD.org.my
+                      http://mirror.leafbug.org/pub/CPAN
+                      http://ossig.mncc.com.my/mirror/pub/CPAN
 
 =item Russian Federation
 
                       http://cpan.tomsk.ru
-                      ftp://cpan.tomsk.ru/pub/CPAN
+                      ftp://cpan.tomsk.ru/
 
 =item Saudi Arabia
@@ -359,7 +367,10 @@
 =item Singapore
 
-                      http://cpan.hjc.edu.sg
+                      http://CPAN.en.com.sg/
+                      ftp://cpan.en.com.sg/
                       http://mirror.averse.net/pub/CPAN
                       ftp://mirror.averse.net/pub/CPAN
+                      http://cpan.oss.eznetsols.org
+                      ftp://ftp.oss.eznetsols.org/cpan
 
 =item South Korea
@@ -367,14 +378,14 @@
                       http://CPAN.bora.net/
                       ftp://ftp.bora.net/pub/CPAN/
-                      http://ftp.kornet.net/pub/CPAN/
-                      ftp://ftp.kornet.net/pub/CPAN/
-                      ftp://ftp.nuri.net/pub/CPAN/
-                      http://ftp.xgate.co.kr/cpan/
-                      ftp://ftp.xgate.co.kr/pub/mirror/CPAN
+                      http://mirror.kr.FreeBSD.org/CPAN
+                      ftp://ftp.kr.FreeBSD.org/pub/CPAN
 
 =item Taiwan
 
                       ftp://ftp.nctu.edu.tw/UNIX/perl/CPAN
-                      ftp://ftp.ee.ncku.edu.tw/pub/perl/CPAN/
+                      http://cpan.cdpa.nsysu.edu.tw/
+                      ftp://cpan.cdpa.nsysu.edu.tw/pub/CPAN
+                      http://ftp.isu.edu.tw/pub/CPAN
+                      ftp://ftp.isu.edu.tw/pub/CPAN
                       ftp://ftp1.sinica.edu.tw/pub1/perl/CPAN/
                       http://ftp.tku.edu.tw/pub/CPAN/
@@ -394,5 +405,4 @@
 =item Costa Rica
 
-                      ftp://ftp.linux.co.cr/mirrors/CPAN/
                       http://ftp.ucr.ac.cr/Unix/CPAN/
                       ftp://ftp.ucr.ac.cr/pub/Unix/CPAN/
@@ -406,4 +416,6 @@
 =item Austria
 
+                      http://cpan.inode.at/
+                      ftp://cpan.inode.at
                       ftp://ftp.tuwien.ac.at/pub/CPAN/
 
@@ -413,9 +425,17 @@
                       ftp://ftp.easynet.be/pub/CPAN/
                       http://cpan.skynet.be
-                      ftp://ftp.skynet.be/pub/CPAN
+                      ftp://ftp.cpan.skynet.be/pub/CPAN
                       ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
 
+=item Bosnia and Herzegovina
+
+                      http://cpan.blic.net/
+
 =item Bulgaria
 
+                      http://cpan.online.bg
+                      ftp://cpan.online.bg/cpan
+                      http://cpan.zadnik.org
+                      ftp://ftp.zadnik.org/mirrors/CPAN/
                       http://cpan.lirex.net/
                       ftp://ftp.lirex.net/pub/mirrors/CPAN
@@ -428,5 +448,4 @@
 =item Czech Republic
 
-                      http://ftp.fi.muni.cz/pub/CPAN/
                       ftp://ftp.fi.muni.cz/pub/CPAN/
                       ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
@@ -447,8 +466,9 @@
 
                       ftp://ftp.funet.fi/pub/languages/perl/CPAN/
-                      http://cpan.kpnqwest.fi/
+                      http://mirror.eunet.fi/CPAN
 
 =item France
 
+                      http://www.enstimac.fr/Perl/CPAN
                       http://ftp.u-paris10.fr/perl/CPAN
                       ftp://ftp.u-paris10.fr/perl/CPAN
@@ -462,7 +482,8 @@
                       http://mir2.ovh.net/ftp.cpan.org
                       ftp://mir1.ovh.net/ftp.cpan.org
+                      http://ftp.crihan.fr/mirrors/ftp.cpan.org/
+                      ftp://ftp.crihan.fr/mirrors/ftp.cpan.org/
                       http://ftp.u-strasbg.fr/CPAN
                       ftp://ftp.u-strasbg.fr/CPAN
-                      http://cpan.cict.fr/
                       ftp://cpan.cict.fr/pub/CPAN/
                       ftp://ftp.uvsq.fr/pub/perl/CPAN/
@@ -470,5 +491,5 @@
 =item Germany
 
-                      ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
+                      ftp://ftp.rub.de/pub/CPAN/
                       ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/
                       ftp://ftp.uni-erlangen.de/pub/source/CPAN/
@@ -487,5 +508,5 @@
 =item Greece
 
-                      ftp://ftp.acn.gr/pub/lang/perl/CPAN
+                      ftp://ftp.acn.gr/pub/lang/perl
                       ftp://ftp.forthnet.gr/pub/languages/perl/CPAN
                       ftp://ftp.ntua.gr/pub/lang/perl/
@@ -493,6 +514,4 @@
 =item Hungary
 
-                      http://cpan.artifact.hu/
-                      ftp://cpan.artifact.hu/CPAN/
                       http://ftp.kfki.hu/packages/perl/CPAN/
                       ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
@@ -507,4 +526,6 @@
                       http://cpan.indigo.ie/
                       ftp://cpan.indigo.ie/pub/CPAN/
+                      http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
+                      ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
                       http://sunsite.compapp.dcu.ie/pub/perl/
                       ftp://sunsite.compapp.dcu.ie/pub/perl/
@@ -521,4 +542,5 @@
                       ftp://cis.uniRoma2.it/CPAN/
                       ftp://ftp.edisontel.it/pub/CPAN_Mirror/
+                      http://cpan.flashnet.it/
                       ftp://ftp.flashnet.it/pub/CPAN/
 
@@ -538,4 +560,5 @@
                       http://cpan.cybercomm.nl/
                       ftp://mirror.cybercomm.nl/pub/CPAN
+                      ftp://mirror.vuurwerk.nl/pub/CPAN/
                       ftp://ftp.cpan.nl/pub/CPAN/
                       http://ftp.easynet.nl/mirror/CPAN
@@ -551,6 +574,5 @@
 =item Poland
 
-                      ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
-                      ftp://ftp.mega.net.pl/pub/mirrors/ftp.perl.com/
+                      ftp://ftp.mega.net.pl/CPAN
                       ftp://ftp.man.torun.pl/pub/doc/CPAN/
                       ftp://sunsite.icm.edu.pl/pub/CPAN/
@@ -562,14 +584,22 @@
                       http://cpan.dei.uc.pt/
                       ftp://ftp.dei.uc.pt/pub/CPAN
-                      ftp://ftp.ist.utl.pt/pub/CPAN/
+                      ftp://ftp.nfsi.pt/pub/CPAN
+                      http://ftp.linux.pt/pub/mirrors/CPAN
+                      ftp://ftp.linux.pt/pub/mirrors/CPAN
                       http://cpan.ip.pt/
                       ftp://cpan.ip.pt/pub/cpan/
-                      ftp://ftp.netc.pt/pub/CPAN/
-                      ftp://ftp.up.pt/pub/CPAN
+                      http://cpan.telepac.pt/
+                      ftp://ftp.telepac.pt/pub/cpan/
 
 =item Romania
 
+                      ftp://ftp.bio-net.ro/pub/CPAN
                       ftp://ftp.kappa.ro/pub/mirrors/ftp.perl.org/pub/CPAN/
+                      ftp://ftp.lug.ro/CPAN
+                      ftp://ftp.roedu.net/pub/CPAN/
                       ftp://ftp.dntis.ro/pub/cpan/
+                      ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.cpan.org/
+                      http://cpan.ambra.ro/
+                      ftp://ftp.ambra.ro/pub/CPAN
                       ftp://ftp.dnttm.ro/pub/CPAN/
                       ftp://ftp.lasting.ro/pub/CPAN
@@ -582,4 +612,5 @@
                       ftp://cpan.rinet.ru/pub/mirror/CPAN/
                       ftp://ftp.aha.ru/pub/CPAN/
+                      ftp://ftp.corbina.ru/pub/CPAN/
                       http://cpan.sai.msu.ru/
                       ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
@@ -587,5 +618,4 @@
 =item Slovakia
 
-                      http://ftp.cvt.stuba.sk/pub/CPAN/
                       ftp://ftp.cvt.stuba.sk/pub/CPAN/
 
@@ -598,4 +628,5 @@
                       http://cpan.imasd.elmundo.es/
                       ftp://ftp.rediris.es/mirror/CPAN/
+                      ftp://ftp.ri.telefonica-data.net/CPAN
                       ftp://ftp.etse.urv.es/pub/perl/
 
@@ -604,4 +635,5 @@
                       http://ftp.du.se/CPAN/
                       ftp://ftp.du.se/pub/CPAN/
+                      http://mirror.dataphone.se/CPAN
                       ftp://mirror.dataphone.se/pub/CPAN
                       ftp://ftp.sunet.se/pub/lang/perl/CPAN/
@@ -609,4 +641,6 @@
 =item Switzerland
 
+                      http://cpan.mirror.solnet.ch/
+                      ftp://ftp.solnet.ch/mirror/CPAN/
                       ftp://ftp.danyk.ch/CPAN/
                       ftp://sunsite.cnlab-switch.ch/mirror/CPAN/
@@ -623,4 +657,6 @@
                       ftp://cpan.org.ua/
                       ftp://ftp.perl.org.ua/pub/CPAN/
+                      http://no-more.kiev.ua/CPAN/
+                      ftp://no-more.kiev.ua/pub/CPAN/
 
 =item United Kingdom
@@ -630,11 +666,13 @@
                       http://cpan.teleglobe.net/
                       ftp://cpan.teleglobe.net/pub/CPAN
-                      http://cpan.crazygreek.co.uk
+                      http://cpan.mirror.anlx.net/
+                      ftp://ftp.mirror.anlx.net/CPAN/
+                      http://cpan.etla.org/
+                      ftp://cpan.etla.org/pub/CPAN
                       ftp://ftp.demon.co.uk/pub/CPAN/
                       http://cpan.m.flirble.org/
                       ftp://ftp.flirble.org/pub/languages/perl/CPAN/
                       ftp://ftp.plig.org/pub/CPAN/
-                      http://mirror.uklinux.net/CPAN/
-                      ftp://mirror.uklinux.net/pub/CPAN/
+                      http://cpan.hambule.co.uk/
                       http://cpan.mirrors.clockerz.net/
                       ftp://ftp.clockerz.net/pub/CPAN/
@@ -647,8 +685,12 @@
 =over 4
 
+=item Canada
+
+=over 8
+
 =item Alberta
 
-                      http://sunsite.ualberta.ca/pub/Mirror/CPAN/
-                      ftp://sunsite.ualberta.ca/pub/Mirror/CPAN/
+                      http://cpan.sunsite.ualberta.ca/
+                      ftp://cpan.sunsite.ualberta.ca/pub/CPAN/
 
 =item Manitoba
@@ -663,9 +705,7 @@
 =item Ontario
 
-                      ftp://ftp.crc.ca/pub/CPAN/
-
-=item Quebec
-
-                      http://cpan.mirror.smartworker.org/
+                      ftp://ftp.nrc.ca/pub/CPAN/
+
+=back
 
 =item Mexico
@@ -673,14 +713,12 @@
                       http://cpan.azc.uam.mx
                       ftp://cpan.azc.uam.mx/mirrors/CPAN
-                      http://cpan.unam.mx/
-                      ftp://cpan.unam.mx/pub/CPAN
+                      http://www.cpan.unam.mx/
+                      ftp://ftp.unam.mx/pub/CPAN
                       http://www.msg.com.mx/CPAN/
                       ftp://ftp.msg.com.mx/pub/CPAN/
 
-=back
-
-=head2 United States
-
-=over 4
+=item United States
+
+=over 8
 
 =item Alabama
@@ -694,16 +732,21 @@
                       http://www.cpan.org/
                       ftp://cpan.valueclick.com/pub/CPAN/
+                      http://www.mednor.net/ftp/pub/mirrors/CPAN/
+                      ftp://ftp.mednor.net/pub/mirrors/CPAN/
                       http://mirrors.gossamer-threads.com/CPAN
                       ftp://cpan.nas.nasa.gov/pub/perl/CPAN/
                       http://mirrors.kernel.org/cpan/
                       ftp://mirrors.kernel.org/pub/CPAN
+                      http://cpan-sj.viaverio.com/
+                      ftp://cpan-sj.viaverio.com/pub/CPAN/
                       http://cpan.digisle.net/
                       ftp://cpan.digisle.net/pub/CPAN
                       http://www.perl.com/CPAN/
-                      http://download.sourceforge.net/mirrors/CPAN/
+                      http://www.uberlan.net/CPAN
 
 =item Colorado
 
                       ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
+                      http://cpan.four10.com
 
 =item Delaware
@@ -722,9 +765,4 @@
                       ftp://mirror.csit.fsu.edu/pub/CPAN/
                       http://cpan.mirrors.nks.net/
-
-=item Illinois
-
-                      http://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
-                      ftp://uiarchive.uiuc.edu/mirrors/ftp/cpan.cse.msu.edu/
 
 =item Indiana
@@ -735,5 +773,6 @@
                       http://archive.progeny.com/CPAN/
                       ftp://archive.progeny.com/CPAN/
-                      ftp://cpan.in-span.net/
+                      http://fx.saintjoe.edu/pub/CPAN
+                      ftp://ftp.saintjoe.edu/pub/CPAN
                       http://csociety-ftp.ecn.purdue.edu/pub/CPAN
                       ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN
@@ -743,17 +782,27 @@
                       http://cpan.uky.edu/
                       ftp://cpan.uky.edu/pub/CPAN/
+                      http://slugsite.louisville.edu/cpan
+                      ftp://slugsite.louisville.edu/CPAN
 
 =item Massachusetts
 
+                      http://mirrors.towardex.com/CPAN
+                      ftp://mirrors.towardex.com/pub/CPAN
                       ftp://ftp.ccs.neu.edu/net/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/
-                      http://cpan.mirrors.netnumina.com/
-                      ftp://mirrors.netnumina.com/cpan/
 
 =item Michigan
 
                       ftp://cpan.cse.msu.edu/
+                      http://cpan.calvin.edu/pub/CPAN
+                      ftp://cpan.calvin.edu/pub/CPAN
+
+=item Nevada
+
+                      http://www.oss.redundant.com/pub/CPAN
+                      ftp://www.oss.redundant.com/pub/CPAN
 
 =item New Jersey
 
+                      http://ftp.cpanel.net/pub/CPAN/
                       ftp://ftp.cpanel.net/pub/CPAN/
                       http://cpan.teleglobe.net/
@@ -762,6 +811,7 @@
 =item New York
 
-                      ftp://ftp.exobit.org/pub/perl/CPAN
                       http://cpan.belfry.net/
+                      http://cpan.erlbaum.net/
+                      ftp://cpan.erlbaum.net/
                       http://cpan.thepirtgroup.com/
                       ftp://cpan.thepirtgroup.com/
@@ -769,13 +819,11 @@
                       http://www.rge.com/pub/languages/perl/
                       ftp://ftp.rge.com/pub/languages/perl/
-                      ftp://mirrors.cloud9.net/pub/mirrors/CPAN/
 
 =item North Carolina
 
+                      http://www.ibiblio.org/pub/languages/perl/CPAN
+                      ftp://ftp.ibiblio.org/pub/languages/perl/CPAN
                       ftp://ftp.duke.edu/pub/perl/
-
-=item Ohio
-
-                      ftp://ftp.loaded.net/pub/CPAN/
+                      ftp://ftp.ncsu.edu/pub/mirror/CPAN/
 
 =item Oklahoma
@@ -804,5 +852,7 @@
 
                       http://ftp.sedl.org/pub/mirrors/CPAN/
+                      http://www.binarycode.org/cpan
                       ftp://mirror.telentente.com/pub/CPAN
+                      http://mirrors.theonlinerecordstore.com/CPAN
 
 =item Utah
@@ -812,14 +862,13 @@
 =item Virginia
 
+                      http://cpan-du.viaverio.com/
+                      ftp://cpan-du.viaverio.com/pub/CPAN/
                       http://mirrors.rcn.net/pub/lang/CPAN/
                       ftp://mirrors.rcn.net/pub/lang/CPAN/
                       http://perl.secsup.org/
                       ftp://perl.secsup.org/pub/perl/
-                      http://mirrors.phihost.com/CPAN/
-                      ftp://mirrors.phihost.com/CPAN/
-                      ftp://ruff.cs.jmu.edu/pub/CPAN/
-                      http://perl.Liquidation.com/CPAN/
-
-=item ashington
+                      http://noc.cvaix.com/mirrors/CPAN/
+
+=item Washington
 
                       http://cpan.llarian.net/
@@ -833,4 +882,8 @@
                       http://mirror.sit.wisc.edu/pub/CPAN/
                       ftp://mirror.sit.wisc.edu/pub/CPAN/
+                      http://mirror.aphix.com/CPAN
+                      ftp://mirror.aphix.com/pub/CPAN
+
+=back
 
 =back
@@ -846,9 +899,14 @@
                       ftp://mirror.aarnet.edu.au/pub/perl/CPAN/
                       ftp://cpan.topend.com.au/pub/CPAN/
+                      http://cpan.mirrors.ilisys.com.au
 
 =item New Zealand
 
                       ftp://ftp.auckland.ac.nz/pub/perl/CPAN/
-                      http://cpan.soa.co.nz/CPAN/
+
+=item United States
+
+                      http://aniani.ifa.hawaii.edu/CPAN/
+                      ftp://aniani.ifa.hawaii.edu/CPAN/
 
 =back
@@ -861,6 +919,6 @@
 
                       ftp://mirrors.bannerlandia.com.ar/mirrors/CPAN/
-                      http://ftp.fcaglp.unlp.edu.ar/pub/CPAN/
-                      ftp://ftp.fcaglp.unlp.edu.ar/pub/CPAN/
+                      http://www.linux.org.ar/mirrors/cpan
+                      ftp://ftp.linux.org.ar/mirrors/cpan
 
 =item Brazil
@@ -868,4 +926,6 @@
                       ftp://cpan.pop-mg.com.br/pub/CPAN/
                       ftp://ftp.matrix.com.br/pub/perl/CPAN/
+                      http://cpan.hostsul.com.br/
+                      ftp://cpan.hostsul.com.br/
 
 =item Chile
@@ -878,27 +938,41 @@
 =head2 RSYNC Mirrors
 
-                      ftp.fcaglp.unlp.edu.ar::CPAN
-                      cpan.mirror.smartworker.org::CPAN
+                      www.linux.org.ar::cpan
                       theoryx5.uwinnipeg.ca::CPAN
                       ftp.shellhung.org::CPAN
-                      ftp.funet.fi::CPAN
+                      rsync.nic.funet.fi::CPAN
                       ftp.u-paris10.fr::CPAN
                       mir1.ovh.net::CPAN
+                      rsync://ftp.crihan.fr::CPAN
                       ftp.gwdg.de::FTP/languages/perl/CPAN/
                       ftp.leo.org::CPAN
-                      CPAN.piksi.itb.ac.id::CPAN
                       ftp.cbn.net.id::CPAN
+                      rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN
                       ftp.iglu.org.il::CPAN
                       gusp.dyndns.org::cpan
                       ftp.kddlabs.co.jp::cpan
                       ftp.ayamura.org::pub/CPAN/
+                      mirror.leafbug.org::CPAN
+                      rsync.en.com.sg::CPAN
                       mirror.averse.net::cpan
+                      rsync.oss.eznetsols.org
+                      ftp.kr.FreeBSD.org::CPAN
+                      ftp.solnet.ch::CPAN
+                      cpan.cdpa.nsysu.edu.tw::CPAN
                       cpan.teleglobe.net::CPAN
+                      rsync://rsync.mirror.anlx.net::CPAN
                       ftp.sedl.org::cpan
+                      ibiblio.org::CPAN
+                      cpan-du.viaverio.com::CPAN
+                      aniani.ifa.hawaii.edu::CPAN
                       archive.progeny.com::CPAN
+                      rsync://slugsite.louisville.edu::CPAN
+                      mirror.aphix.com::CPAN
                       cpan.teleglobe.net::CPAN
                       ftp.lug.udel.edu::cpan
                       mirrors.kernel.org::mirrors/CPAN
                       mirrors.phenominet.com::CPAN
+                      cpan.pair.com::CPAN
+                      cpan-sj.viaverio.com::CPAN
                       mirror.csit.fsu.edu::CPAN
                       csociety-ftp.ecn.purdue.edu::CPAN
@@ -1188,7 +1262,8 @@
 a declaration of how others may copy/use/modify your work.
 
-Perl, for example, is supplied with two types of licence: The GNU
-GPL and The Artistic Licence (see the files README, Copying, and
-Artistic).  Larry has good reasons for NOT just using the GNU GPL.
+Perl, for example, is supplied with two types of licence: The GNU GPL
+and The Artistic Licence (see the files README, Copying, and Artistic,
+or L<perlgpl> and L<perlartistic>).  Larry has good reasons for NOT
+just using the GNU GPL.
 
 My personal recommendation, out of respect for Larry, Perl, and the
Index: branches/vendor/third/perl/pod/perlintern.pod
===================================================================
--- branches/vendor/third/perl/pod/perlintern.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perlintern.pod (revision 20074)
@@ -11,4 +11,300 @@
 B<they are not for use in extensions>!
 
+
+=head1 CV reference counts and CvOUTSIDE
+
+=over 8
+
+=item CvWEAKOUTSIDE
+
+Each CV has a pointer, C<CvOUTSIDE()>, to its lexically enclosing
+CV (if any). Because pointers to anonymous sub prototypes are
+stored in C<&> pad slots, it is a possible to get a circular reference,
+with the parent pointing to the child and vice-versa. To avoid the
+ensuing memory leak, we do not increment the reference count of the CV
+pointed to by C<CvOUTSIDE> in the I<one specific instance> that the parent
+has a C<&> pad slot pointing back to us. In this case, we set the
+C<CvWEAKOUTSIDE> flag in the child. This allows us to determine under what
+circumstances we should decrement the refcount of the parent when freeing
+the child.
+
+There is a further complication with non-closure anonymous subs (ie those
+that do not refer to any lexicals outside that sub). In this case, the
+anonymous prototype is shared rather than being cloned. This has the
+consequence that the parent may be freed while there are still active
+children, eg
+
+    BEGIN { $a = sub { eval '$x' } }
+
+In this case, the BEGIN is freed immediately after execution since there
+are no active references to it: the anon sub prototype has
+C<CvWEAKOUTSIDE> set since it's not a closure, and $a points to the same
+CV, so it doesn't contribute to BEGIN's refcount either.  When $a is
+executed, the C<eval '$x'> causes the chain of C<CvOUTSIDE>s to be followed,
+and the freed BEGIN is accessed.
+
+To avoid this, whenever a CV and its associated pad is freed, any
+C<&> entries in the pad are explicitly removed from the pad, and if the
+refcount of the pointed-to anon sub is still positive, then that
+child's C<CvOUTSIDE> is set to point to its grandparent. This will only
+occur in the single specific case of a non-closure anon prototype
+having one or more active references (such as C<$a> above).
+
+One other thing to consider is that a CV may be merely undefined
+rather than freed, eg C<undef &foo>. In this case, its refcount may
+not have reached zero, but we still delete its pad and its C<CvROOT> etc.
+Since various children may still have their C<CvOUTSIDE> pointing at this
+undefined CV, we keep its own C<CvOUTSIDE> for the time being, so that
+the chain of lexical scopes is unbroken. For example, the following
+should print 123:
+
+    my $x = 123;
+    sub tmp { sub { eval '$x' } }
+    my $a = tmp();
+    undef &tmp;
+    print  $a->();
+
+	bool	CvWEAKOUTSIDE(CV *cv)
+
+=for hackers
+Found in file cv.h
+
+
+=back
+
+=head1 Functions in file pad.h
+
+
+=over 8
+
+=item CX_CURPAD_SAVE
+
+Save the current pad in the given context block structure.
+
+	void	CX_CURPAD_SAVE(struct context)
+
+=for hackers
+Found in file pad.h
+
+=item CX_CURPAD_SV
+
+Access the SV at offset po in the saved current pad in the given
+context block structure (can be used as an lvalue).
+
+	SV *	CX_CURPAD_SV(struct context, PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_BASE_SV	
+
+Get the value from slot C<po> in the base (DEPTH=1) pad of a padlist
+
+	SV *	PAD_BASE_SV	(PADLIST padlist, PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_CLONE_VARS
+
+|CLONE_PARAMS* param
+Clone the state variables associated with running and compiling pads.
+
+	void	PAD_CLONE_VARS(PerlInterpreter *proto_perl \)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_COMPNAME_FLAGS
+
+Return the flags for the current compiling pad name
+at offset C<po>. Assumes a valid slot entry.
+
+	U32	PAD_COMPNAME_FLAGS(PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_COMPNAME_GEN
+
+The generation number of the name at offset C<po> in the current
+compiling pad (lvalue). Note that C<SvCUR> is hijacked for this purpose.
+
+	STRLEN	PAD_COMPNAME_GEN(PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_COMPNAME_OURSTASH
+
+Return the stash associated with an C<our> variable.
+Assumes the slot entry is a valid C<our> lexical.
+
+	HV *	PAD_COMPNAME_OURSTASH(PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_COMPNAME_PV
+
+Return the name of the current compiling pad name
+at offset C<po>. Assumes a valid slot entry.
+
+	char *	PAD_COMPNAME_PV(PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_COMPNAME_TYPE
+
+Return the type (stash) of the current compiling pad name at offset
+C<po>. Must be a valid name. Returns null if not typed.
+
+	HV *	PAD_COMPNAME_TYPE(PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_DUP
+
+Clone a padlist.
+
+	void	PAD_DUP(PADLIST dstpad, PADLIST srcpad, CLONE_PARAMS* param)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_RESTORE_LOCAL
+
+Restore the old pad saved into the local variable opad by PAD_SAVE_LOCAL()
+
+	void	PAD_RESTORE_LOCAL(PAD *opad)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_SAVE_LOCAL
+
+Save the current pad to the local variable opad, then make the
+current pad equal to npad
+
+	void	PAD_SAVE_LOCAL(PAD *opad, PAD *npad)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_SAVE_SETNULLPAD
+
+Save the current pad then set it to null.
+
+	void	PAD_SAVE_SETNULLPAD()
+
+=for hackers
+Found in file pad.h
+
+=item PAD_SETSV	
+
+Set the slot at offset C<po> in the current pad to C<sv>
+
+	SV *	PAD_SETSV	(PADOFFSET po, SV* sv)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_SET_CUR	
+
+Set the current pad to be pad C<n> in the padlist, saving
+the previous current pad.
+
+	void	PAD_SET_CUR	(PADLIST padlist, I32 n)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_SET_CUR_NOSAVE	
+
+like PAD_SET_CUR, but without the save
+
+	void	PAD_SET_CUR_NOSAVE	(PADLIST padlist, I32 n)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_SV	
+
+Get the value at offset C<po> in the current pad
+
+	void	PAD_SV	(PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+=item PAD_SVl	
+
+Lightweight and lvalue version of C<PAD_SV>.
+Get or set the value at offset C<po> in the current pad.
+Unlike C<PAD_SV>, does not print diagnostics with -DX.
+For internal use only.
+
+	SV *	PAD_SVl	(PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+=item SAVECLEARSV	
+
+Clear the pointed to pad value on scope exit. (ie the runtime action of 'my')
+
+	void	SAVECLEARSV	(SV **svp)
+
+=for hackers
+Found in file pad.h
+
+=item SAVECOMPPAD
+
+save PL_comppad and PL_curpad
+
+
+
+
+
+	void	SAVECOMPPAD()
+
+=for hackers
+Found in file pad.h
+
+=item SAVEPADSV	
+
+Save a pad slot (used to restore after an iteration)
+
+XXX DAPM it would make more sense to make the arg a PADOFFSET
+	void	SAVEPADSV	(PADOFFSET po)
+
+=for hackers
+Found in file pad.h
+
+
+=back
+
+=head1 Functions in file pp_ctl.c
+
+
+=over 8
+
+=item find_runcv
+
+Locate the CV corresponding to the currently executing sub or eval.
+If db_seqp is non_null, skip CVs that are in the DB package and populate
+*db_seqp with the cop sequence number at the point that the DB:: code was
+entered. (allows debuggers to eval in the scope of the breakpoint rather
+than in in the scope of the debuger itself).
+
+	CV*	find_runcv(U32 *db_seqp)
+
+=for hackers
+Found in file pp_ctl.c
+
+
+=back
 
 =head1 Global Variables
@@ -149,5 +445,5 @@
 
 The CvPADLIST AV has does not have AvREAL set, so REFCNT of component items
-is managed "manual" (mostly in op.c) rather than normal av.c rules.
+is managed "manual" (mostly in pad.c) rather than normal av.c rules.
 The items in the AV are not SVs as for a normal AV, but other AVs:
 
@@ -161,9 +457,12 @@
 
 During compilation:
-C<PL_comppad_name> is set the the the names AV.
-C<PL_comppad> is set the the frame AV for the frame CvDEPTH == 1.
-C<PL_curpad> is set the body of the frame AV (i.e. AvARRAY(PL_comppad)).
-
-Itterating over the names AV itterates over all possible pad
+C<PL_comppad_name> is set to the names AV.
+C<PL_comppad> is set to the frame AV for the frame CvDEPTH == 1.
+C<PL_curpad> is set to the body of the frame AV (i.e. AvARRAY(PL_comppad)).
+
+During execution, C<PL_comppad> and C<PL_curpad> refer to the live
+frame of the currently executing sub.
+
+Iterating over the names AV iterates over all possible pad
 items. Pad slots that are SVs_PADTMP (targets/GVs/constants) end up having
 &PL_sv_undef "names" (see pad_alloc()).
@@ -178,11 +477,17 @@
 
 The SVs in the names AV have their PV being the name of the variable.
-NV+1..IV inclusive is a range of cop_seq numbers for which the name is valid.
-For typed lexicals name SV is SVt_PVMG and SvSTASH points at the type.
+NV+1..IV inclusive is a range of cop_seq numbers for which the name is
+valid.  For typed lexicals name SV is SVt_PVMG and SvSTASH points at the
+type.  For C<our> lexicals, the type is SVt_PVGV, and GvSTASH points at the
+stash of the associated global (so that duplicate C<our> delarations in the
+same package can be detected).  SvCUR is sometimes hijacked to
+store the generation number during compilation.
 
 If SvFAKE is set on the name SV then slot in the frame AVs are
-a REFCNT'ed references to a lexical from "outside".
-
-If the 'name' is '&' the the corresponding entry in frame AV
+a REFCNT'ed references to a lexical from "outside". In this case,
+the name SV does not have a cop_seq range, since it is in scope
+throughout.
+
+If the 'name' is '&' the corresponding entry in frame AV
 is a CV representing a possible closure.
 (SvFAKE and name of '&' is not a meaningful combination currently but could
@@ -192,5 +497,241 @@
 
 =for hackers
-Found in file cv.h
+Found in file pad.c
+
+=item cv_clone
+
+Clone a CV: make a new CV which points to the same code etc, but which
+has a newly-created pad built by copying the prototype pad and capturing
+any outer lexicals.
+
+	CV*	cv_clone(CV* proto)
+
+=for hackers
+Found in file pad.c
+
+=item cv_dump
+
+dump the contents of a CV
+
+	void	cv_dump(CV *cv, char *title)
+
+=for hackers
+Found in file pad.c
+
+=item do_dump_pad
+
+Dump the contents of a padlist
+
+	void	do_dump_pad(I32 level, PerlIO *file, PADLIST *padlist, int full)
+
+=for hackers
+Found in file pad.c
+
+=item intro_my
+
+"Introduce" my variables to visible status.
+
+	U32	intro_my()
+
+=for hackers
+Found in file pad.c
+
+=item pad_add_anon
+
+Add an anon code entry to the current compiling pad
+
+	PADOFFSET	pad_add_anon(SV* sv, OPCODE op_type)
+
+=for hackers
+Found in file pad.c
+
+=item pad_add_name
+
+Create a new name in the current pad at the specified offset.
+If C<typestash> is valid, the name is for a typed lexical; set the
+name's stash to that value.
+If C<ourstash> is valid, it's an our lexical, set the name's
+GvSTASH to that value
+
+Also, if the name is @.. or %.., create a new array or hash for that slot
+
+If fake, it means we're cloning an existing entry
+
+	PADOFFSET	pad_add_name(char *name, HV* typestash, HV* ourstash, bool clone)
+
+=for hackers
+Found in file pad.c
+
+=item pad_alloc
+
+Allocate a new my or tmp pad entry. For a my, simply push a null SV onto
+the end of PL_comppad, but for a tmp, scan the pad from PL_padix upwards
+for a slot which has no name and and no active value.
+
+	PADOFFSET	pad_alloc(I32 optype, U32 tmptype)
+
+=for hackers
+Found in file pad.c
+
+=item pad_block_start
+
+Update the pad compilation state variables on entry to a new block
+
+	void	pad_block_start(int full)
+
+=for hackers
+Found in file pad.c
+
+=item pad_check_dup
+
+Check for duplicate declarations: report any of:
+     * a my in the current scope with the same name;
+     * an our (anywhere in the pad) with the same name and the same stash
+       as C<ourstash>
+C<is_our> indicates that the name to check is an 'our' declaration
+
+	void	pad_check_dup(char* name, bool is_our, HV* ourstash)
+
+=for hackers
+Found in file pad.c
+
+=item pad_findlex
+
+Find a named lexical anywhere in a chain of nested pads. Add fake entries
+in the inner pads if it's found in an outer one. innercv is the CV *inside*
+the chain of outer CVs to be searched. If newoff is non-null, this is a
+run-time cloning: don't add fake entries, just find the lexical and add a
+ref to it at newoff in the current pad.
+
+	PADOFFSET	pad_findlex(char* name, PADOFFSET newoff, CV* innercv)
+
+=for hackers
+Found in file pad.c
+
+=item pad_findmy
+
+Given a lexical name, try to find its offset, first in the current pad,
+or failing that, in the pads of any lexically enclosing subs (including
+the complications introduced by eval). If the name is found in an outer pad,
+then a fake entry is added to the current pad.
+Returns the offset in the current pad, or NOT_IN_PAD on failure.
+
+	PADOFFSET	pad_findmy(char* name)
+
+=for hackers
+Found in file pad.c
+
+=item pad_fixup_inner_anons
+
+For any anon CVs in the pad, change CvOUTSIDE of that CV from
+old_cv to new_cv if necessary. Needed when a newly-compiled CV has to be
+moved to a pre-existing CV struct.
+
+	void	pad_fixup_inner_anons(PADLIST *padlist, CV *old_cv, CV *new_cv)
+
+=for hackers
+Found in file pad.c
+
+=item pad_free
+
+Free the SV at offet po in the current pad.
+
+	void	pad_free(PADOFFSET po)
+
+=for hackers
+Found in file pad.c
+
+=item pad_leavemy
+
+Cleanup at end of scope during compilation: set the max seq number for
+lexicals in this scope and warn of any lexicals that never got introduced.
+
+	void	pad_leavemy()
+
+=for hackers
+Found in file pad.c
+
+=item pad_new
+
+Create a new compiling padlist, saving and updating the various global
+vars at the same time as creating the pad itself. The following flags
+can be OR'ed together:
+
+    padnew_CLONE	this pad is for a cloned CV
+    padnew_SAVE		save old globals
+    padnew_SAVESUB	also save extra stuff for start of sub
+
+	PADLIST*	pad_new(int flags)
+
+=for hackers
+Found in file pad.c
+
+=item pad_push
+
+Push a new pad frame onto the padlist, unless there's already a pad at
+this depth, in which case don't bother creating a new one.
+If has_args is true, give the new pad an @_ in slot zero.
+
+	void	pad_push(PADLIST *padlist, int depth, int has_args)
+
+=for hackers
+Found in file pad.c
+
+=item pad_reset
+
+Mark all the current temporaries for reuse
+
+	void	pad_reset()
+
+=for hackers
+Found in file pad.c
+
+=item pad_setsv
+
+Set the entry at offset po in the current pad to sv.
+Use the macro PAD_SETSV() rather than calling this function directly.
+
+	void	pad_setsv(PADOFFSET po, SV* sv)
+
+=for hackers
+Found in file pad.c
+
+=item pad_swipe
+
+Abandon the tmp in the current pad at offset po and replace with a
+new one.
+
+	void	pad_swipe(PADOFFSET po, bool refadjust)
+
+=for hackers
+Found in file pad.c
+
+=item pad_tidy
+
+Tidy up a pad after we've finished compiling it:
+    * remove most stuff from the pads of anonsub prototypes;
+    * give it a @_;
+    * mark tmps as such.
+
+	void	pad_tidy(padtidy_type type)
+
+=for hackers
+Found in file pad.c
+
+=item pad_undef
+
+Free the padlist associated with a CV.
+If parts of it happen to be current, we null the relevant
+PL_*pad* global vars so that we don't have any dangling references left.
+We also repoint the CvOUTSIDE of any about-to-be-orphaned
+inner subs to the outer of this cv.
+
+(This function should really be called pad_free, but the name was already
+taken)
+
+	void	pad_undef(CV* cv)
+
+=for hackers
+Found in file pad.c
 
 
Index: branches/vendor/third/perl/pod/perlreref.pod
===================================================================
--- branches/vendor/third/perl/pod/perlreref.pod (revision 20074)
+++ branches/vendor/third/perl/pod/perlreref.pod (revision 20074)
@@ -0,0 +1,310 @@
+=head1 NAME
+
+perlreref - Perl Regular Expressions Reference
+
+=head1 DESCRIPTION
+
+This is a quick reference to Perl's regular expressions.
+For full information see L<perlre> and L<perlop>, as well
+as the L</"SEE ALSO"> section in this document.
+
+=head2 OPERATORS
+
+  =~ determines to which variable the regex is applied.
+     In its absence, $_ is used.
+
+        $var =~ /foo/;
+
+  !~ determines to which variable the regex is applied,
+     and negates the result of the match; it returns
+     false if the match succeeds, and true if it fails.
+
+       $var !~ /foo/;
+
+  m/pattern/igmsoxc searches a string for a pattern match,
+     applying the given options.
+
+        i  case-Insensitive
+        g  Global - all occurrences
+        m  Multiline mode - ^ and $ match internal lines
+        s  match as a Single line - . matches \n
+        o  compile pattern Once
+        x  eXtended legibility - free whitespace and comments
+        c  don't reset pos on failed matches when using /g
+
+     If 'pattern' is an empty string, the last I<successfully> matched
+     regex is used. Delimiters other than '/' may be used for both this
+     operator and the following ones.
+
+  qr/pattern/imsox lets you store a regex in a variable,
+     or pass one around. Modifiers as for m// and are stored
+     within the regex.
+
+  s/pattern/replacement/igmsoxe substitutes matches of
+     'pattern' with 'replacement'. Modifiers as for m//
+     with one addition:
+
+        e  Evaluate replacement as an expression
+
+     'e' may be specified multiple times. 'replacement' is interpreted
+     as a double quoted string unless a single-quote (') is the delimiter.
+
+  ?pattern? is like m/pattern/ but matches only once. No alternate
+      delimiters can be used. Must be reset with L<reset|perlfunc/reset>.
+
+=head2 SYNTAX
+
+   \       Escapes the character immediately following it
+   .       Matches any single character except a newline (unless /s is used)
+   ^       Matches at the beginning of the string (or line, if /m is used)
+   $       Matches at the end of the string (or line, if /m is used)
+   *       Matches the preceding element 0 or more times
+   +       Matches the preceding element 1 or more times
+   ?       Matches the preceding element 0 or 1 times
+   {...}   Specifies a range of occurrences for the element preceding it
+   [...]   Matches any one of the characters contained within the brackets
+   (...)   Groups subexpressions for capturing to $1, $2...
+   (?:...) Groups subexpressions without capturing (cluster)
+   |       Matches either the subexpression preceding or following it
+   \1, \2 ...  The text from the Nth group
+
+=head2 ESCAPE SEQUENCES
+
+These work as in normal strings.
+
+   \a       Alarm (beep)
+   \e       Escape
+   \f       Formfeed
+   \n       Newline
+   \r       Carriage return
+   \t       Tab
+   \038     Any octal ASCII value
+   \x7f     Any hexadecimal ASCII value
+   \x{263a} A wide hexadecimal value
+   \cx      Control-x
+   \N{name} A named character
+
+   \l  Lowercase next character
+   \u  Titlecase next character
+   \L  Lowercase until \E
+   \U  Uppercase until \E
+   \Q  Disable pattern metacharacters until \E
+   \E  End case modification
+
+For Titlecase, see L</Titlecase>.
+
+This one works differently from normal strings:
+
+   \b  An assertion, not backspace, except in a character class
+
+=head2 CHARACTER CLASSES
+
+   [amy]    Match 'a', 'm' or 'y'
+   [f-j]    Dash specifies "range"
+   [f-j-]   Dash escaped or at start or end means 'dash'
+   [^f-j]   Caret indicates "match any character _except_ these"
+
+The following sequences work within or without a character class.
+The first six are locale aware, all are Unicode aware.  The default
+character class equivalent are given.  See L<perllocale> and
+L<perlunicode> for details.
+
+   \d      A digit                     [0-9]
+   \D      A nondigit                  [^0-9]
+   \w      A word character            [a-zA-Z0-9_]
+   \W      A non-word character        [^a-zA-Z0-9_]
+   \s      A whitespace character      [ \t\n\r\f]
+   \S      A non-whitespace character  [^ \t\n\r\f]
+
+   \C      Match a byte (with Unicode, '.' matches a character)
+   \pP     Match P-named (Unicode) property
+   \p{...} Match Unicode property with long name
+   \PP     Match non-P
+   \P{...} Match lack of Unicode property with long name
+   \X      Match extended unicode sequence
+
+POSIX character classes and their Unicode and Perl equivalents:
+
+   alnum   IsAlnum              Alphanumeric
+   alpha   IsAlpha              Alphabetic
+   ascii   IsASCII              Any ASCII char
+   blank   IsSpace  [ \t]       Horizontal whitespace (GNU extension)
+   cntrl   IsCntrl              Control characters
+   digit   IsDigit  \d          Digits
+   graph   IsGraph              Alphanumeric and punctuation
+   lower   IsLower              Lowercase chars (locale and Unicode aware)
+   print   IsPrint              Alphanumeric, punct, and space
+   punct   IsPunct              Punctuation
+   space   IsSpace  [\s\ck]     Whitespace
+           IsSpacePerl   \s     Perl's whitespace definition
+   upper   IsUpper              Uppercase chars (locale and Unicode aware)
+   word    IsWord   \w          Alphanumeric plus _ (Perl extension)
+   xdigit  IsXDigit [0-9A-Fa-f] Hexadecimal digit
+
+Within a character class:
+
+    POSIX       traditional   Unicode
+    [:digit:]       \d        \p{IsDigit}
+    [:^digit:]      \D        \P{IsDigit}
+
+=head2 ANCHORS
+
+All are zero-width assertions.
+
+   ^  Match string start (or line, if /m is used)
+   $  Match string end (or line, if /m is used) or before newline
+   \b Match word boundary (between \w and \W)
+   \B Match except at word boundary (between \w and \w or \W and \W)
+   \A Match string start (regardless of /m)
+   \Z Match string end (before optional newline)
+   \z Match absolute string end
+   \G Match where previous m//g left off
+
+=head2 QUANTIFIERS
+
+Quantifiers are greedy by default -- match the B<longest> leftmost.
+
+   Maximal Minimal Allowed range
+   ------- ------- -------------
+   {n,m}   {n,m}?  Must occur at least n times but no more than m times
+   {n,}    {n,}?   Must occur at least n times
+   {n}     {n}?    Must occur exactly n times
+   *       *?      0 or more times (same as {0,})
+   +       +?      1 or more times (same as {1,})
+   ?       ??      0 or 1 time (same as {0,1})
+
+There is no quantifier {,n} -- that gets understood as a literal string.
+
+=head2 EXTENDED CONSTRUCTS
+
+   (?#text)         A comment
+   (?imxs-imsx:...) Enable/disable option (as per m// modifiers)
+   (?=...)          Zero-width positive lookahead assertion
+   (?!...)          Zero-width negative lookahead assertion
+   (?<=...)         Zero-width positive lookbehind assertion
+   (?<!...)         Zero-width negative lookbehind assertion
+   (?>...)          Grab what we can, prohibit backtracking
+   (?{ code })      Embedded code, return value becomes $^R
+   (??{ code })     Dynamic regex, return value used as regex
+   (?(cond)yes|no)  cond being integer corresponding to capturing parens
+   (?(cond)yes)        or a lookaround/eval zero-width assertion
+
+=head2 VARIABLES
+
+   $_    Default variable for operators to use
+   $*    Enable multiline matching (deprecated; not in 5.9.0 or later)
+
+   $&    Entire matched string
+   $`    Everything prior to matched string
+   $'    Everything after to matched string
+
+The use of those last three will slow down B<all> regex use
+within your program. Consult L<perlvar> for C<@LAST_MATCH_START>
+to see equivalent expressions that won't cause slow down.
+See also L<Devel::SawAmpersand>.
+
+   $1, $2 ...  hold the Xth captured expr
+   $+    Last parenthesized pattern match
+   $^N   Holds the most recently closed capture
+   $^R   Holds the result of the last (?{...}) expr
+   @-    Offsets of starts of groups. $-[0] holds start of whole match
+   @+    Offsets of ends of groups. $+[0] holds end of whole match
+
+Captured groups are numbered according to their I<opening> paren.
+
+=head2 FUNCTIONS
+
+   lc          Lowercase a string
+   lcfirst     Lowercase first char of a string
+   uc          Uppercase a string
+   ucfirst     Titlecase first char of a string
+
+   pos         Return or set current match position
+   quotemeta   Quote metacharacters
+   reset       Reset ?pattern? status
+   study       Analyze string for optimizing matching
+
+   split       Use regex to split a string into parts
+
+The first four of these are like the escape sequences C<\L>, C<\l>,
+C<\U>, and C<\u>.  For Titlecase, see L</Titlecase>.
+
+=head2 TERMINOLOGY
+
+=head3 Titlecase
+
+Unicode concept which most often is equal to uppercase, but for
+certain characters like the German "sharp s" there is a difference.
+
+=head1 AUTHOR
+
+Iain Truskett.
+
+This document may be distributed under the same terms as Perl itself.
+
+=head1 SEE ALSO
+
+=over 4
+
+=item *
+
+L<perlretut> for a tutorial on regular expressions.
+
+=item *
+
+L<perlrequick> for a rapid tutorial.
+
+=item *
+
+L<perlre> for more details.
+
+=item *
+
+L<perlvar> for details on the variables.
+
+=item *
+
+L<perlop> for details on the operators.
+
+=item *
+
+L<perlfunc> for details on the functions.
+
+=item *
+
+L<perlfaq6> for FAQs on regular expressions.
+
+=item *
+
+The L<re> module to alter behaviour and aid
+debugging.
+
+=item *
+
+L<perldebug/"Debugging regular expressions">
+
+=item *
+
+L<perluniintro>, L<perlunicode>, L<charnames> and L<locale>
+for details on regexes and internationalisation.
+
+=item *
+
+I<Mastering Regular Expressions> by Jeffrey Friedl
+(F<http://regex.info/>) for a thorough grounding and
+reference on the topic.
+
+=back
+
+=head1 THANKS
+
+David P.C. Wollmann,
+Richard Soderberg,
+Sean M. Burke,
+Tom Christiansen,
+Jim Cromie,
+and
+Jeffrey Goff
+for useful advice.
+
+=cut
Index: branches/vendor/third/perl/pod/perldiag.pod
===================================================================
--- branches/vendor/third/perl/pod/perldiag.pod (revision 18449)
+++ branches/vendor/third/perl/pod/perldiag.pod (revision 20074)
@@ -45,12 +45,4 @@
 =over 4
 
-=item A thread exited while %d other threads were still running
-
-(W) When using threaded Perl, a thread (not necessarily the main
-thread) exited while there were still other threads running.
-Usually it's a good idea to first collect the return values of the
-created threads by joining them, and only then exit from the main
-thread.  See L<threads>.
-
 =item accept() on closed socket %s
 
@@ -65,5 +57,5 @@
 =item '!' allowed only after types %s
 
-(F) The '!' is allowed in pack() and unpack() only after certain types.
+(F) The '!' is allowed in pack() or unpack() only after certain types.
 See L<perlfunc/pack>.
 
@@ -172,4 +164,13 @@
 will identify which operator was so unfortunate.
 
+=item Argument list not closed for PerlIO layer "%s"
+
+(W layer) When pushing a layer with arguments onto the Perl I/O system you
+forgot the ) that closes the argument list.  (Layers take care of transforming
+data between external and internal representations.)  Perl stopped parsing
+the layer list at this point and did not attempt to push this layer.
+If your program didn't explicitly request the failing operation, it may be
+the result of the value of the environment variable PERLIO.
+
 =item Array @%s missing the @ in argument %d of %s()
 
@@ -191,24 +192,16 @@
 know which context to supply to the right side.
 
+=item A thread exited while %d threads were running
+
+(W) When using threaded Perl, a thread (not necessarily the main
+thread) exited while there were still other threads running.
+Usually it's a good idea to first collect the return values of the
+created threads by joining them, and only then exit from the main
+thread.  See L<threads>.
+
 =item Attempt to access disallowed key '%s' in a restricted hash
 
 (F) The failing code has attempted to get or set a key which is not in
 the current set of allowed keys of a restricted hash.
-
-=item Attempt to clear a restricted hash
-
-(F) It is currently not allowed to clear a restricted hash, even if the
-new hash would contain the same keys as before.  This may change in
-the future.
-
-=item Attempt to delete readonly key '%s' from a restricted hash
-
-(F) The failing code attempted to delete a key whose value has been
-declared readonly from a restricted hash.
-
-=item Attempt to delete disallowed key '%s' from a restricted hash
-
-(F) The failing code attempted to delete from a restricted hash a key
-which is not in its key set.
 
 =item Attempt to bless into a reference
@@ -229,4 +222,14 @@
 
     bless $self, "$proto";
+
+=item Attempt to delete disallowed key '%s' from a restricted hash
+
+(F) The failing code attempted to delete from a restricted hash a key
+which is not in its key set.
+
+=item Attempt to delete readonly key '%s' from a restricted hash
+
+(F) The failing code attempted to delete a key whose value has been
+declared readonly from a restricted hash.
 
 =item Attempt to free non-arena SV: 0x%lx
@@ -440,9 +443,4 @@
 (P) Perl detected an attempt to copy an internal value that is not
 copyable.
-
-=item B<-P> not allowed for setuid/setgid script
-
-(F) The script would have to be opened by the C preprocessor by name,
-which provides a race condition that breaks security.
 
 =item Buffer overflow in prime_env_iter: %s
@@ -468,9 +466,21 @@
 the warning.  See L<perlsub>.
 
-=item / cannot take a count
-
-(F) You had an unpack template indicating a counted-length string, but
-you have also specified an explicit size for the string.  See
-L<perlfunc/pack>.
+=item Cannot compress integer in pack
+
+(F) An argument to pack("w",...) was too large to compress.  The BER
+compressed integer format can only be used with positive integers, and you
+attempted to compress Infinity or a very large number (> 1e308).
+See L<perlfunc/pack>.
+
+=item Cannot compress negative numbers in pack
+
+(F) An argument to pack("w",...) was negative.  The BER compressed integer
+format can only be used with positive integers.  See L<perlfunc/pack>.
+
+=item Can only compress unsigned integers in pack
+
+(F) An argument to pack("w",...) was not an integer.  The BER compressed
+integer format can only be used with positive integers, and you attempted
+to compress something else.  See L<perlfunc/pack>.
 
 =item Can't bless non-reference value
@@ -676,16 +686,4 @@
 script exists in the current directory, but PATH prohibits running it.
 
-=item Can't find string terminator %s anywhere before EOF
-
-(F) Perl strings can stretch over multiple lines.  This message means
-that the closing delimiter was omitted.  Because bracketed quotes count
-nesting levels, the following is missing its final parenthesis:
-
-    print q(The character '(' starts a side comment.);
-
-If you're getting this error from a here-document, you may have included
-unseen whitespace before or after your closing tag. A good programmer's
-editor will have a way to help you find these characters.
-
 =item Can't find %s property definition %s
 
@@ -696,4 +694,16 @@
 by C<\\p> (just the C<\p>) or by C<\Q\p> (the rest of the string, until
 possible C<\E>).
+
+=item Can't find string terminator %s anywhere before EOF
+
+(F) Perl strings can stretch over multiple lines.  This message means
+that the closing delimiter was omitted.  Because bracketed quotes count
+nesting levels, the following is missing its final parenthesis:
+
+    print q(The character '(' starts a side comment.);
+
+If you're getting this error from a here-document, you may have included
+unseen whitespace before or after your closing tag. A good programmer's
+editor will have a way to help you find these characters.
 
 =item Can't fork
@@ -818,19 +828,13 @@
 method, nor does any of its base classes.  See L<perlobj>.
 
+=item Can't locate package %s for @%s::ISA
+
+(W syntax) The @ISA array contained the name of another package that
+doesn't seem to exist.
+
 =item Can't locate PerlIO%s
 
 (F) You tried to use in open() a PerlIO layer that does not exist,
 e.g. open(FH, ">:nosuchlayer", "somefile").
-
-=item (perhaps you forgot to load "%s"?)
-
-(F) This is an educated guess made in conjunction with the message
-"Can't locate object method \"%s\" via package \"%s\"".  It often means
-that a method requires a package that has not been loaded.
-
-=item Can't locate package %s for @%s::ISA
-
-(W syntax) The @ISA array contained the name of another package that
-doesn't seem to exist.
 
 =item Can't make list assignment to \%ENV on this system
@@ -917,5 +921,5 @@
 for stdout.
 
-=item Can't open perl script%s: %s
+=item Can't open perl script%s
 
 (F) The script you specified can't be opened for the indicated reason.
@@ -978,4 +982,9 @@
 is not allowed.
 
+=item Can't return outside a subroutine
+
+(F) The return statement was executed in mainline code, that is, where
+there was no subroutine call to return out of.  See L<perlsub>.
+
 =item Can't return %s to lvalue scalar context
 
@@ -986,9 +995,4 @@
 list context.
 
-=item Can't return outside a subroutine
-
-(F) The return statement was executed in mainline code, that is, where
-there was no subroutine call to return out of.  See L<perlsub>.
-
 =item Can't stat script "%s"
 
@@ -1038,9 +1042,4 @@
 calling sv_upgrade.
 
-=item Can't use an undefined value as %s reference
-
-(F) A value used as either a hard reference or a symbolic reference must
-be a defined value.  This helps to delurk some insidious errors.
-
 =item Can't use anonymous symbol table for method lookup
 
@@ -1048,4 +1047,9 @@
 table that doesn't have a name.  Symbol tables can become anonymous
 for example by undefining stashes: C<undef %Some::Package::>.
+
+=item Can't use an undefined value as %s reference
+
+(F) A value used as either a hard reference or a symbolic reference must
+be a defined value.  This helps to delurk some insidious errors.
 
 =item Can't use bareword ("%s") as %s ref while "strict refs" in use
@@ -1118,5 +1122,5 @@
 Perhaps you need to copy the value to a temporary, and repeat that.
 
-=item Character in "C" format wrapped
+=item Character in "C" format wrapped in pack
 
 (W pack) You said
@@ -1133,5 +1137,5 @@
 instead.
 
-=item Character in "c" format wrapped
+=item Character in "c" format wrapped in pack
 
 (W pack) You said
@@ -1151,4 +1155,9 @@
 
 (W unopened) You tried to close a filehandle that was never opened.
+
+=item Code missing after '/'
+
+(F) You had a (sub-)template that ends with a '/'. There must be another
+template code following the slash. See L<perlfunc/pack>.
 
 =item %s: Command not found
@@ -1186,5 +1195,4 @@
 lock.
 
-
 =item cond_signal() called on unlocked variable
 
@@ -1255,14 +1263,9 @@
 (P) The malloc package that comes with Perl had an internal failure.
 
-=item C<-p> destination: %s
-
-(F) An error occurred during the implicit output invoked by the C<-p>
-command-line switch.  (This output goes to STDOUT unless you've
-redirected it with select().)
-
-=item C<-T> and C<-B> not implemented on filehandles
-
-(F) Perl can't peek at the stdio buffer of filehandles when it doesn't
-know about your kind of stdio.  You'll have to use a filename instead.
+=item Count after length/code in unpack
+
+(F) You had an unpack template indicating a counted-length string, but
+you have also specified an explicit size for the string.  See
+L<perlfunc/pack>.
 
 =item Deep recursion on subroutine "%s"
@@ -1296,4 +1299,10 @@
 that triggers this error.
 
+=item DESTROY created new reference to dead object '%s'
+
+(F) A DESTROY() method created a new reference to the object which is
+just being DESTROYed. Perl is confused, and prefers to abort rather than
+to create a dangling reference.
+
 =item Did not produce a valid header
 
@@ -1337,4 +1346,9 @@
 (F) You said something like "use Module 42" but the Module did not
 define a C<$VERSION.>
+
+=item '/' does not take a repeat count
+
+(F) You cannot put a repeat count of any kind right after the '/' code.
+See L<perlfunc/pack>.
 
 =item Don't know how to handle magic of type '%s'
@@ -1495,27 +1509,28 @@
 =item Filehandle %s opened only for input
 
-(W io) You tried to write on a read-only filehandle.  If you intended it
-to be a read-write filehandle, you needed to open it with "+<" or "+>"
-or "+>>" instead of with "<" or nothing.  If you intended only to write
-the file, use ">" or ">>".  See L<perlfunc/open>.
-The warning will also occur if STDOUT (file descriptor 1) or STDERR
-(file descriptor 2) is opened for input, this is a pre-emptive warning in
-case some other part of your program or a child process is expecting STDOUT
-and STDERR to be writable. This can happen accidentally if you
-C<close(STDOUT)> or STDERR and then C<open> an unrelated handle which
-will resuse the lowest numbered available descriptor.
+(W io) You tried to write on a read-only filehandle.  If you intended
+it to be a read-write filehandle, you needed to open it with "+<" or
+"+>" or "+>>" instead of with "<" or nothing.  If you intended only to
+write the file, use ">" or ">>".  See L<perlfunc/open>.
 
 =item Filehandle %s opened only for output
 
-(W io) You tried to read from a filehandle opened only for writing.
-If you intended it to be a read/write filehandle, you needed to open it
+(W io) You tried to read from a filehandle opened only for writing, If
+you intended it to be a read/write filehandle, you needed to open it
 with "+<" or "+>" or "+>>" instead of with "<" or nothing.  If you
 intended only to read from the file, use "<".  See L<perlfunc/open>.
-The warning will also occur if STDIN (file descriptor 0) is opened
-for output - this is a pre-emptive warning in case some other part of your
-program or a child process is expecting STDIN to be readable.
-This can happen accidentally if you C<close(STDIN)> and then C<open> an
-unrelated handle which will resuse the lowest numbered available
-descriptor.
+Another possibility is that you attempted to open filedescriptor 0
+(also known as STDIN) for output (maybe you closed STDIN earlier?).
+
+=item Filehandle %s reopened as %s only for input
+
+(W io) You opened for reading a filehandle that got the same filehandle id
+as STDOUT or STDERR. This occured because you closed STDOUT or STDERR
+previously.
+
+=item Filehandle STDIN reopened as %s only for output
+
+(W io) You opened for writing a filehandle that got the same filehandle id
+as STDIN. This occured because you closed STDIN previously.
 
 =item Final $ should be \$ or $name
@@ -1526,11 +1541,4 @@
 name.
 
-=item Final @ should be \@ or @name
-
-(F) You must now decide whether the final @ in a string was meant to be
-a literal "at" sign, or was meant to introduce a variable name that
-happens to be missing.  So you have to put either the backslash or the
-name.
-
 =item flock() on closed filehandle %s
 
@@ -1539,12 +1547,4 @@
 filehandles.  Are you attempting to call flock() on a dirhandle by the
 same name?
-
-=item Quantifier follows nothing in regex;
-
-marked by <-- HERE in m/%s/
-
-(F) You started a regular expression with a quantifier. Backslash it if you
-meant it literally. The <-- HERE shows in the regular expression about
-where the problem was discovered. See L<perlre>.
 
 =item Format not terminated
@@ -1645,8 +1645,9 @@
 unspecified destination.  See L<perlfunc/goto>.
 
-=item %s-group starts with a count
-
-(F) In pack/unpack a ()-group started with a count.  A count is
+=item ()-group starts with a count
+
+(F) A ()-group started with a count.  A count is
 supposed to follow something: a template character or a ()-group.
+ See L<perlfunc/pack>.
 
 =item %s had compilation errors
@@ -1705,4 +1706,9 @@
 (W syntax) An illegal character was found in a prototype declaration.  Legal
 characters in prototypes are $, @, %, *, ;, [, ], &, and \.
+
+=item Illegal declaration of anonymous subroutine
+
+(F) When using the C<sub> keyword to construct an anonymous subroutine,
+you must always specify a block of code. See L<perlsub>.
 
 =item Illegal division by zero
@@ -1792,7 +1798,7 @@
 (F) You can't use system(), exec(), or a piped open in a setuid or
 setgid script if any of C<$ENV{PATH}>, C<$ENV{IFS}>, C<$ENV{CDPATH}>,
-C<$ENV{ENV}> or C<$ENV{BASH_ENV}> are derived from data supplied (or
-potentially supplied) by the user.  The script must set the path to a
-known value, using trustworthy data.  See L<perlsec>.
+C<$ENV{ENV}>, C<$ENV{BASH_ENV}> or C<$ENV{TERM}> are derived from data
+supplied (or potentially supplied) by the user.  The script must set
+the path to a known value, using trustworthy data.  See L<perlsec>.
 
 =item Integer overflow in %s number
@@ -1859,5 +1865,5 @@
 problem was discovered.  See L<perlre>.
 
-=item Invalid [] range "%s" in transliteration operator
+=item Invalid range "%s" in transliteration operator
 
 (F) The range specified in the tr/// or y/// operator had a minimum
@@ -1871,15 +1877,16 @@
 See L<attributes>.
 
-=item Invalid type in pack: '%s'
-
-(F) The given character is not a valid pack type.  See L<perlfunc/pack>.
-(W pack) The given character is not a valid pack type but used to be
-silently ignored.
-
-=item Invalid type in unpack: '%s'
-
-(F) The given character is not a valid unpack type.  See
-L<perlfunc/unpack>.
-(W unpack) The given character is not a valid unpack type but used to be
+=item Invalid separator character %s in PerlIO layer specification %s
+
+(W layer) When pushing layers onto the Perl I/O system, something other than a
+colon or whitespace was seen between the elements of a layer list.
+If the previous attribute had a parenthesised parameter list, perhaps that
+list was terminated too soon.
+
+=item Invalid type '%s' in %s
+
+(F) The given character is not a valid pack or unpack type.
+See L<perlfunc/pack>.
+(W) The given character is not a valid pack or unpack type but used to be
 silently ignored.
 
@@ -1893,4 +1900,10 @@
 (W unopened) You tried ioctl() on a filehandle that was never opened.
 Check you control flow and number of arguments.
+
+=item IO layers (like "%s") unavailable
+
+(F) Your Perl has not been configured to have PerlIO, and therefore
+you cannot use IO layers.  To have PerlIO Perl must be configured
+with 'useperlio'.
 
 =item IO::Socket::atmark not implemented on this architecture
@@ -1937,4 +1950,10 @@
 effective uids or gids failed.
 
+=item length/code after end of string in unpack
+
+(F) While unpacking, the string buffer was alread used up when an unpack
+length/code combination tried to obtain more data. This results in
+an undefined value for the length. See L<perlfunc/pack>.
+
 =item listen() on closed socket %s
 
@@ -1943,4 +1962,10 @@
 L<perlfunc/listen>.
 
+=item Lookbehind longer than %d not implemented in regex; marked by <-- HERE in m/%s/
+
+(F) There is currently a limit on the length of string which lookbehind can
+handle. This restriction may be eased in a future release. The <-- HERE
+shows in the regular expression about where the problem was discovered.
+
 =item lstat() on filehandle %s
 
@@ -1955,11 +1980,13 @@
 L<perlsub/"Lvalue subroutines">.
 
-=item Lookbehind longer than %d not implemented in regex;
-
-marked by <-- HERE in m/%s/
-
-(F) There is currently a limit on the length of string which lookbehind can
-handle. This restriction may be eased in a future release. The <-- HERE
-shows in the regular expression about where the problem was discovered.
+=item Malformed integer in [] in  pack
+
+(F) Between the  brackets enclosing a numeric repeat count only digits
+are permitted.  See L<perlfunc/pack>.
+
+=item Malformed integer in [] in unpack
+
+(F) Between the  brackets enclosing a numeric repeat count only digits
+are permitted.  See L<perlfunc/pack>.
 
 =item Malformed PERLLIB_PREFIX
@@ -1997,7 +2024,5 @@
 doing it Perl met a malformed Unicode surrogate.
 
-=item %s matches null string many times in regex;
-
-marked by <-- HERE in m/%s/
+=item %s matches null string many times in regex; marked by <-- HERE in m/%s/
 
 (W regexp) The pattern you've specified would be an infinite loop if the
@@ -2012,5 +2037,5 @@
 "use" or "my".
 
-=item % may only be used in unpack
+=item % may not be used in pack
 
 (F) You can't pack a string by supplying a checksum, because the
@@ -2053,4 +2078,9 @@
 C<open(FH, "command |")> construction, but the command was missing or
 blank.
+
+=item Missing control char name in \c
+
+(F) A double-quoted string ended with "\c", without the required control
+character name.
 
 =item Missing name in "my sub"
@@ -2142,5 +2172,5 @@
 They're written like C<$foo[1][2][3]>, as in C.
 
-=item / must be followed by a*, A* or Z*
+=item '/' must be followed by 'a*', 'A*' or 'Z*'
 
 (F) You had a pack template indicating a counted-length string,
@@ -2148,14 +2178,9 @@
 or Z*.  See L<perlfunc/pack>.
 
-=item / must be followed by a, A or Z
-
-(F) You had an unpack template indicating a counted-length string, which
-must be followed by one of the letters a, A or Z to indicate what sort
-of string is to be unpacked.  See L<perlfunc/pack>.
-
-=item / must follow a numeric type
-
-(F) You had an unpack template that contained a '#', but this did not
-follow some numeric unpack specification.  See L<perlfunc/pack>.
+=item '/' must follow a numeric type in unpack
+
+(F) You had an unpack template that contained a '/', but this did not
+follow some unpack specification producing a numeric value.
+See L<perlfunc/pack>.
 
 =item "my sub" not yet implemented
@@ -2177,4 +2202,14 @@
 provided for this purpose.
 
+NOTE: This warning detects symbols that have been used only once so $c, @c,
+%c, *c, &c, sub c{}, c(), and c (the filehandle or format) are considered
+the same; if a program uses $c only once but also uses any of the others it
+will not trigger this warning.
+
+=item Negative '/' count in unpack
+
+(F) The length count obtained from a length/code unpack operation was
+negative.  See L<perlfunc/pack>.
+
 =item Negative length
 
@@ -2200,4 +2235,13 @@
 (S internal) The symbol in question was declared but somehow went out of
 scope before it could possibly have been used.
+
+=item Newline in left-justified string for %s
+
+(W printf) There is a newline in a string to be left justified by 
+C<printf> or C<sprintf>.
+
+The padding spaces will appear after the newline, which is probably not
+what you wanted.  Usually you should remove the newline from the string 
+and put formatting characters in the C<sprintf> format.
 
 =item No %s allowed while running setuid
@@ -2207,8 +2251,4 @@
 will be another way to do what you want that is, if not secure, at least
 securable.  See L<perlsec>.
-
-=item No B<-e> allowed in setuid scripts
-
-(F) A setuid script can't be specified by the user.
 
 =item No comma allowed after %s
@@ -2256,4 +2296,8 @@
 ordinary subroutine call.
 
+=item No B<-e> allowed in setuid scripts
+
+(F) A setuid script can't be specified by the user.
+
 =item No error file after 2> or 2>> on command line
 
@@ -2261,4 +2305,9 @@
 redirection, and found a '2>' or a '2>>' on the command line, but can't
 find the name of the file to which to write data destined for stderr.
+
+=item No group ending character '%c' found in template
+
+(F) A pack or unpack template has an opening '(' or '[' without its
+matching counterpart. See L<perlfunc/pack>.
 
 =item No input file after < on command line
@@ -2420,10 +2469,4 @@
 of Perl.  Check the #! line, or manually feed your script into Perl
 yourself.
-
-=item %s not allowed in length fields
-
-(F) The count in the (un)pack template may be replaced by C<[TEMPLATE]> only if
-C<TEMPLATE> always matches the same amount of packed bytes.  Redesign
-the template.
 
 =item no UTC offset information; assuming local time is UTC
@@ -2507,9 +2550,4 @@
 the buffer and zero pad the new area.
 
-=item -%s on unopened filehandle %s
-
-(W unopened) You tried to invoke a file test operator on a filehandle
-that isn't open.  Check your control flow.  See also L<perlfunc/-X>.
-
 =item %s() on unopened %s
 
@@ -2517,4 +2555,9 @@
 never initialized.  You need to do an open(), a sysopen(), or a socket()
 call, or call a constructor from the FileHandle package.
+
+=item -%s on unopened filehandle %s
+
+(W unopened) You tried to invoke a file test operator on a filehandle
+that isn't open.  Check your control flow.  See also L<perlfunc/-X>.
 
 =item oops: oopsAV
@@ -2551,4 +2594,10 @@
 remaining memory (or virtual memory) to satisfy the request.  Perl has
 no option but to exit immediately.
+
+At least in Unix you may be able to get past this by increasing your
+process datasize limits: in csh/tcsh use C<limit> and
+C<limit datasize n> (where C<n> is the number of kilobytes) to check
+the current limits and change them, and in ksh/bash/zsh use C<ulimit -a>
+and C<ulimit -d n>, respectively.
 
 =item Out of memory during "large" request for %s
@@ -2584,7 +2633,7 @@
 otherwise.
 
-=item @ outside of string
-
-(F) You had a pack template that specified an absolute position outside
+=item '@' outside of string in unpack
+
+(F) You had a template that specified an absolute position outside
 the string being unpacked.  See L<perlfunc/pack>.
 
@@ -2596,4 +2645,9 @@
 mixed-case attribute name, instead.  See L<attributes>.
 
+=item pack/unpack repeat count overflow
+
+(F) You can't specify a repeat count so large that it overflows your
+signed integers.  See L<perlfunc/pack>.
+
 =item page overflow
 
@@ -2623,4 +2677,11 @@
 reference.
 
+=item panic: Devel::DProf inconsistent subroutine return
+
+(P) Devel::DProf called a subroutine that exited using goto(LABEL),
+last(LABEL) or next(LABEL). Leaving that way a subroutine called from
+an XSUB will lead very probably to a crash of the interpreter. This is
+a bug that will hopefully one day get fixed.
+
 =item panic: die %s
 
@@ -2628,4 +2689,103 @@
 it wasn't an eval context.
 
+=item panic: do_subst
+
+(P) The internal pp_subst() routine was called with invalid operational
+data.
+
+=item panic: do_trans_%s
+
+(P) The internal do_trans routines were called with invalid operational
+data.
+
+=item panic: frexp
+
+(P) The library function frexp() failed, making printf("%f") impossible.
+
+=item panic: goto
+
+(P) We popped the context stack to a context with the specified label,
+and then discovered it wasn't a context we know how to do a goto in.
+
+=item panic: INTERPCASEMOD
+
+(P) The lexer got into a bad state at a case modifier.
+
+=item panic: INTERPCONCAT
+
+(P) The lexer got into a bad state parsing a string with brackets.
+
+=item panic: kid popen errno read
+
+(F) forked child returned an incomprehensible message about its errno.
+
+=item panic: last
+
+(P) We popped the context stack to a block context, and then discovered
+it wasn't a block context.
+
+=item panic: leave_scope clearsv
+
+(P) A writable lexical variable became read-only somehow within the
+scope.
+
+=item panic: leave_scope inconsistency
+
+(P) The savestack probably got out of sync.  At least, there was an
+invalid enum on the top of it.
+
+=item panic: magic_killbackrefs
+
+(P) Failed an internal consistency check while trying to reset all weak
+references to an object.
+
+=item panic: malloc
+
+(P) Something requested a negative number of bytes of malloc.
+
+=item panic: mapstart
+
+(P) The compiler is screwed up with respect to the map() function.
+
+=item panic: null array
+
+(P) One of the internal array routines was passed a null AV pointer.
+
+=item panic: pad_alloc
+
+(P) The compiler got confused about which scratch pad it was allocating
+and freeing temporaries and lexicals from.
+
+=item panic: pad_free curpad
+
+(P) The compiler got confused about which scratch pad it was allocating
+and freeing temporaries and lexicals from.
+
+=item panic: pad_free po
+
+(P) An invalid scratch pad offset was detected internally.
+
+=item panic: pad_reset curpad
+
+(P) The compiler got confused about which scratch pad it was allocating
+and freeing temporaries and lexicals from.
+
+=item panic: pad_sv po
+
+(P) An invalid scratch pad offset was detected internally.
+
+=item panic: pad_swipe curpad
+
+(P) The compiler got confused about which scratch pad it was allocating
+and freeing temporaries and lexicals from.
+
+=item panic: pad_swipe po
+
+(P) An invalid scratch pad offset was detected internally.
+
+=item panic: pp_iter
+
+(P) The foreach iterator got called in a non-loop context frame.
+
 =item panic: pp_match%s
 
@@ -2633,103 +2793,4 @@
 data.
 
-=item panic: do_subst
-
-(P) The internal pp_subst() routine was called with invalid operational
-data.
-
-=item panic: do_trans_%s
-
-(P) The internal do_trans routines were called with invalid operational
-data.
-
-=item panic: frexp
-
-(P) The library function frexp() failed, making printf("%f") impossible.
-
-=item panic: goto
-
-(P) We popped the context stack to a context with the specified label,
-and then discovered it wasn't a context we know how to do a goto in.
-
-=item panic: INTERPCASEMOD
-
-(P) The lexer got into a bad state at a case modifier.
-
-=item panic: INTERPCONCAT
-
-(P) The lexer got into a bad state parsing a string with brackets.
-
-=item panic: kid popen errno read
-
-(F) forked child returned an incomprehensible message about its errno.
-
-=item panic: last
-
-(P) We popped the context stack to a block context, and then discovered
-it wasn't a block context.
-
-=item panic: leave_scope clearsv
-
-(P) A writable lexical variable became read-only somehow within the
-scope.
-
-=item panic: leave_scope inconsistency
-
-(P) The savestack probably got out of sync.  At least, there was an
-invalid enum on the top of it.
-
-=item panic: magic_killbackrefs
-
-(P) Failed an internal consistency check while trying to reset all weak
-references to an object.
-
-=item panic: malloc
-
-(P) Something requested a negative number of bytes of malloc.
-
-=item panic: mapstart
-
-(P) The compiler is screwed up with respect to the map() function.
-
-=item panic: null array
-
-(P) One of the internal array routines was passed a null AV pointer.
-
-=item panic: pad_alloc
-
-(P) The compiler got confused about which scratch pad it was allocating
-and freeing temporaries and lexicals from.
-
-=item panic: pad_free curpad
-
-(P) The compiler got confused about which scratch pad it was allocating
-and freeing temporaries and lexicals from.
-
-=item panic: pad_free po
-
-(P) An invalid scratch pad offset was detected internally.
-
-=item panic: pad_reset curpad
-
-(P) The compiler got confused about which scratch pad it was allocating
-and freeing temporaries and lexicals from.
-
-=item panic: pad_sv po
-
-(P) An invalid scratch pad offset was detected internally.
-
-=item panic: pad_swipe curpad
-
-(P) The compiler got confused about which scratch pad it was allocating
-and freeing temporaries and lexicals from.
-
-=item panic: pad_swipe po
-
-(P) An invalid scratch pad offset was detected internally.
-
-=item panic: pp_iter
-
-(P) The foreach iterator got called in a non-loop context frame.
-
 =item panic: pp_split
 
@@ -2763,8 +2824,4 @@
 (P) The compiler attempted to do a goto, or something weird like that.
 
-=item panic: yylex
-
-(P) The lexer got into a bad state while processing a case modifier.
-
 =item panic: utf16_to_utf8: odd bytelen
 
@@ -2772,4 +2829,8 @@
 to even) byte length.
 
+=item panic: yylex
+
+(P) The lexer got into a bad state while processing a case modifier.
+
 =item Parentheses missing around "%s" list
 
@@ -2783,4 +2844,16 @@
 
 Remember that "my", "our", and "local" bind tighter than comma.
+
+=item C<-p> destination: %s
+
+(F) An error occurred during the implicit output invoked by the C<-p>
+command-line switch.  (This output goes to STDOUT unless you've
+redirected it with select().)
+
+=item (perhaps you forgot to load "%s"?)
+
+(F) This is an educated guess made in conjunction with the message
+"Can't locate object method \"%s\" via package \"%s\"".  It often means
+that a method requires a package that has not been loaded.
 
 =item Perl %s required--this is only version %s, stopped
@@ -2794,4 +2867,8 @@
 (F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the
 C<sh>-shell in.  See "PERL_SH_DIR" in L<perlos2>.
+
+=item PERL_SIGNALS illegal: "%s"
+
+See L<perlrun/PERL_SIGNALS> for legal values.
 
 =item perl: warning: Setting locale failed.
@@ -2817,29 +2894,4 @@
 L<perllocale> section B<LOCALE PROBLEMS>.
 
-=item perlio: argument list not closed for layer "%s"
-
-(W layer) When pushing a layer with arguments onto the Perl I/O system you
-forgot the ) that closes the argument list.  (Layers take care of transforming
-data between external and internal representations.)  Perl stopped parsing
-the layer list at this point and did not attempt to push this layer.
-If your program didn't explicitly request the failing operation, it may be
-the result of the value of the environment variable PERLIO.
-
-=item perlio: invalid separator character %s in layer specification list %s
-
-(W layer) When pushing layers onto the Perl I/O system, something other than a
-colon or whitespace was seen between the elements of a layer list.
-If the previous attribute had a parenthesised parameter list, perhaps that
-list was terminated too soon.
-
-=item perlio: unknown layer "%s"
-
-(W layer) An attempt was made to push an unknown layer onto the Perl I/O
-system.  (Layers take care of transforming data between external and
-internal representations.)  Note that some layers, such as C<mmap>,
-are not supported in all environments.  If your program didn't
-explicitly request the failing operation, it may be the result of the
-value of the environment variable PERLIO.
-
 =item Permission denied
 
@@ -2852,11 +2904,27 @@
 fine from VMS' perspective, it's probably not what you intended.
 
-=item P must have an explicit size
+=item 'P' must have an explicit size in unpack
 
 (F) The unpack format P must have an explicit size, not "*".
 
-=item POSIX syntax [%s] belongs inside character classes in regex;
-
-marked by <-- HERE in m/%s/
+=item B<-P> not allowed for setuid/setgid script
+
+(F) The script would have to be opened by the C preprocessor by name,
+which provides a race condition that breaks security.
+
+=item POSIX class [:%s:] unknown in regex; marked by <-- HERE in m/%s/
+
+(F) The class in the character class [: :] syntax is unknown.  The <-- HERE
+shows in the regular expression about where the problem was discovered.
+Note that the POSIX character classes do B<not> have the C<is> prefix
+the corresponding C interfaces have: in other words, it's C<[[:print:]]>,
+not C<isprint>.  See L<perlre>.
+
+=item POSIX getpgrp can't take an argument
+
+(F) Your system has POSIX getpgrp(), which takes no argument, unlike
+the BSD version, which takes a pid.
+
+=item POSIX syntax [%s] belongs inside character classes in regex; marked by <-- HERE in m/%s/
 
 (W regexp) The character class constructs [: :], [= =], and [. .]  go
@@ -2867,7 +2935,5 @@
 where the problem was discovered.  See L<perlre>.
 
-=item POSIX syntax [. .] is reserved for future extensions in regex;
-
-marked by <-- HERE in m/%s/
+=item POSIX syntax [. .] is reserved for future extensions in regex; marked by <-- HERE in m/%s/
 
 (F regexp) Within regular expression character classes ([]) the syntax
@@ -2878,7 +2944,5 @@
 about where the problem was discovered.  See L<perlre>.
 
-=item POSIX syntax [= =] is reserved for future extensions in regex;
-
-marked by <-- HERE in m/%s/
+=item POSIX syntax [= =] is reserved for future extensions in regex; marked by <-- HERE in m/%s/
 
 (F) Within regular expression character classes ([]) the syntax beginning
@@ -2889,19 +2953,4 @@
 problem was discovered.  See L<perlre>.
 
-=item POSIX class [:%s:] unknown in regex;
-
-marked by <-- HERE in m/%s/
-
-(F) The class in the character class [: :] syntax is unknown.  The <-- HERE
-shows in the regular expression about where the problem was discovered.
-Note that the POSIX character classes do B<not> have the C<is> prefix
-the corresponding C interfaces have: in other words, it's C<[[:print:]]>,
-not C<isprint>.  See L<perlre>.
-
-=item POSIX getpgrp can't take an argument
-
-(F) Your system has POSIX getpgrp(), which takes no argument, unlike
-the BSD version, which takes a pid.
-
 =item Possible attempt to put comments in qw() list
 
@@ -2955,4 +3004,16 @@
 end of the buffer just in case.  This sentinel byte got clobbered, and
 Perl assumes that memory is now corrupted.  See L<perlfunc/ioctl>.
+
+=item Possible precedence problem on bitwise %c operator
+
+(W precedence) Your program uses a bitwise logical operator in conjunction
+with a numeric comparison operator, like this :
+
+    if ($x & $y == 0) { ... }
+
+This expression is actually equivalent to C<$x & ($y == 0)>, due to the
+higher precedence of C<==>. This is probably not what you want. (If you
+really meant to write this, disable the warning, or, better, put the
+parentheses explicitly and write C<$x & ($y == 0)>).
 
 =item Possible unintended interpolation of %s in string
@@ -3033,7 +3094,17 @@
 definition.
 
-=item Quantifier in {,} bigger than %d in regex;
-
-marked by <-- HERE in m/%s/
+=item Pseudo-hashes are deprecated
+
+(D deprecated)  Pseudo-hashes were deprecated in Perl 5.8.0 and they
+will be removed in Perl 5.10.0, see L<perl58delta> for more details.
+You can continue to use the C<fields> pragma.
+
+=item Quantifier follows nothing in regex; marked by <-- HERE in m/%s/
+
+(F) You started a regular expression with a quantifier. Backslash it if you
+meant it literally. The <-- HERE shows in the regular expression about
+where the problem was discovered. See L<perlre>.
+
+=item Quantifier in {,} bigger than %d in regex; marked by <-- HERE in m/%s/
 
 (F) There is currently a limit to the size of the min and max values of the
@@ -3041,7 +3112,5 @@
 the problem was discovered. See L<perlre>.
 
-=item Quantifier unexpected on zero-length expression;
-
-marked by <-- HERE in m/%s/
+=item Quantifier unexpected on zero-length expression; marked by <-- HERE in m/%s/
 
 (W regexp) You applied a regular expression quantifier in a place where
@@ -3066,4 +3135,12 @@
 before now.  Check your control flow.
 
+=item read() on closed filehandle %s
+
+(W closed) You tried to read from a closed filehandle.
+
+=item read() on unopened filehandle %s
+
+(W unopened) You tried to read from a filehandle that was never opened.
+
 =item Reallocation too large: %lx
 
@@ -3114,7 +3191,5 @@
 a reference count of other than 1.
 
-=item Reference to nonexistent group in regex;
-
-marked by <-- HERE in m/%s/
+=item Reference to nonexistent group in regex; marked by <-- HERE in m/%s/
 
 (F) You used something like C<\7> in your regular expression, but there are
@@ -3135,14 +3210,4 @@
 (P) A "can't happen" error, because safemalloc() should have caught it
 earlier.
-
-=item Repeat count in pack overflows
-
-(F) You can't specify a repeat count so large that it overflows your
-signed integers.  See L<perlfunc/pack>.
-
-=item Repeat count in unpack overflows
-
-(F) You can't specify a repeat count so large that it overflows your
-signed integers.  See L<perlfunc/unpack>.
 
 =item Reversed %s= operator
@@ -3158,4 +3223,11 @@
 themselves, either by using ^ instead of @ (for scalar variables), or by
 shifting or popping (for array variables).  See L<perlform>.
+
+=item Scalars leaked: %d
+
+(P) Something went wrong in Perl's internal bookkeeping of scalars:
+not all scalar variables were deallocated by the time Perl exited.
+What this usually indicates is a memory leak, which is of course bad,
+especially if the Perl program is intended to be long-running.
 
 =item Scalar value @%s[%s] better written as $%s[%s]
@@ -3189,11 +3261,4 @@
 L<perlref>.
 
-=item Scalars leaked: %d
-
-(P) Something went wrong in Perl's internal bookkeeping of scalars:
-not all scalar variables were deallocated by the time Perl exited.
-What this usually indicates is a memory leak, which is of course bad,
-especially if the Perl program is intended to be long-running.
-
 =item Script is not setuid/setgid in suidperl
 
@@ -3207,4 +3272,9 @@
 Missing the leading C<$> from a variable C<$m> may cause this error.
 
+Note that since Perl 5.9.0 a // can also be the I<defined-or>
+construct, not just the empty search pattern.  Therefore code written
+in Perl 5.9.0 or later that uses the // as the I<defined-or> can be
+misparsed by pre-5.9.0 Perls as a non-terminated search pattern.
+
 =item %sseek() on unopened filehandle
 
@@ -3246,16 +3316,5 @@
 L<perlre>.
 
-=item Sequence (?{...}) not terminated or not {}-balanced in regex;
-
-marked by <-- HERE in m/%s/
-
-(F) If the contents of a (?{...}) clause contains braces, they must balance
-for Perl to properly detect the end of the clause. The <-- HERE shows in
-the regular expression about where the problem was discovered. See
-L<perlre>.
-
-=item Sequence (?%s...) not implemented in regex;
-
-marked by <-- HERE in m/%s/
+=item Sequence (?%s...) not implemented in regex; marked by <-- HERE in m/%s/
 
 (F) A proposed regular expression extension has the character reserved but
@@ -3263,7 +3322,5 @@
 where the problem was discovered. See L<perlre>.
 
-=item Sequence (?%s...) not recognized in regex;
-
-marked by <-- HERE in m/%s/
+=item Sequence (?%s...) not recognized in regex; marked by <-- HERE in m/%s/
 
 (F) You used a regular expression extension that doesn't make sense.  The
@@ -3271,10 +3328,15 @@
 discovered.  See L<perlre>.
 
-=item Sequence (?#... not terminated in regex;
-
-marked by <-- HERE in m/%s/
+=item Sequence (?#... not terminated in regex; marked by <-- HERE in m/%s/
 
 (F) A regular expression comment must be terminated by a closing
 parenthesis.  Embedded parentheses aren't allowed.  The <-- HERE shows in
+the regular expression about where the problem was discovered. See
+L<perlre>.
+
+=item Sequence (?{...}) not terminated or not {}-balanced in regex; marked by <-- HERE in m/%s/
+
+(F) If the contents of a (?{...}) clause contains braces, they must balance
+for Perl to properly detect the end of the clause. The <-- HERE shows in
 the regular expression about where the problem was discovered. See
 L<perlre>.
@@ -3465,7 +3527,5 @@
 a version of the setuid emulator somehow got run anyway.
 
-=item Switch (?(condition)... contains too many branches in regex;
-
-marked by <-- HERE in m/%s/
+=item Switch (?(condition)... contains too many branches in regex; marked by <-- HERE in m/%s/
 
 (F) A (?(condition)if-clause|else-clause) construct can have at most two
@@ -3479,7 +3539,5 @@
 discovered. See L<perlre>.
 
-=item Switch condition not recognized in regex;
-
-marked by <-- HERE in m/%s/
+=item Switch condition not recognized in regex; marked by <-- HERE in m/%s/
 
 (F) If the argument to the (?(...)if-clause|else-clause) construct is a
@@ -3491,4 +3549,8 @@
 (F) While under the C<use filetest> pragma, we cannot switch the real
 and effective uids or gids.
+
+=item %s syntax
+
+(F) The final summary message when a C<perl -c> succeeds.
 
 =item syntax error
@@ -3526,7 +3588,11 @@
 or "my $var" or "our $var".
 
-=item %s syntax OK
-
-(F) The final summary message when a C<perl -c> succeeds.
+=item sysread() on closed filehandle %s
+
+(W closed) You tried to read from a closed filehandle.
+
+=item sysread() on unopened filehandle %s
+
+(W unopened) You tried to read from a filehandle that was never opened.
 
 =item System V %s is not implemented on this machine
@@ -3541,4 +3607,