integrate cfgperl changes#6293..6324 into mainline
Gurusamy Sarathy [Tue, 11 Jul 2000 19:27:48 +0000 (19:27 +0000)]
p4raw-link: @6324 on //depot/cfgperl: 81bf48a6dbba4b295dfa172a17ca70b654dbf225
p4raw-link: @6293 on //depot/cfgperl: 6e37ea6052902cde1aeb08a2129ffc7c8ea53736

p4raw-id: //depot/perl@6369
p4raw-branched: from //depot/cfgperl@6368 'branch in' lib/Win32.pod
lib/lib_pm.PL
p4raw-deleted: from //depot/cfgperl@6368 'delete in' pod/Win32.pod
(@5937..) pod/buildtoc (@6091..) lib/lib.pm.PL (@6227..)
pod/Makefile (@6232..)
p4raw-integrated: from //depot/cfgperl@6368 'copy in' thread.h
(@5656..) lib/warnings/register.pm (@5704..) ext/B/B/Stash.pm
(@5972..) lib/CGI/Util.pm (@6034..) util.c (@6217..) gv.c
(@6244..) pp.c (@6260..) doop.c (@6269..) pod/perlfunc.pod
(@6277..) pp_ctl.c (@6293..) makedef.pl (@6301..) embed.h
global.sym objXSUB.h perlapi.c proto.h (@6305..) win32/Makefile
(@6307..) Makefile.SH (@6309..) t/op/method.t (@6312..) sv.h
(@6315..) 'ignore' op.c (@6273..) 'merge in' embed.pl
win32/win32.c (@6305..)
p4raw-integrated: from //depot/cfgperl@6324 'merge in' toke.c (@6307..)
p4raw-branched: from //depot/cfgperl@6323 'branch in' pod/buildtoc.PL
(@6319..)
p4raw-integrated: from //depot/cfgperl@6323 'copy in' pod/perl.pod
(@6319..) pod/perltoc.pod (@6322..) 'merge in' MANIFEST
(@6319..)
p4raw-branched: from //depot/cfgperl@6319 'branch in' pod/Makefile.SH
p4raw-integrated: from //depot/cfgperl@6315 'ignore' pp_hot.c (@6313..)
p4raw-integrated: from //depot/cfgperl@6311 'copy in'
ext/POSIX/POSIX.pod (@6296..)
p4raw-integrated: from //depot/cfgperl@6307 'merge in' doio.c (@6223..)

34 files changed:
MANIFEST
Makefile.SH
doio.c
doop.c
embed.h
embed.pl
ext/B/B/Stash.pm
ext/POSIX/POSIX.pod
global.sym
gv.c
lib/CGI/Util.pm
lib/Win32.pod [moved from pod/Win32.pod with 100% similarity]
lib/lib_pm.PL [moved from lib/lib.pm.PL with 99% similarity]
lib/warnings/register.pm
makedef.pl
objXSUB.h
perlapi.c
pod/Makefile [deleted file]
pod/Makefile.SH [new file with mode: 0644]
pod/buildtoc [deleted file]
pod/buildtoc.PL [new file with mode: 0644]
pod/perl.pod
pod/perlfunc.pod
pod/perltoc.pod
pp.c
pp_ctl.c
proto.h
sv.h
t/op/method.t
thread.h
toke.c
util.c
win32/Makefile
win32/win32.c

index 6573182..16893a5 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -720,7 +720,7 @@ lib/hostname.pl             Old hostname code
 lib/importenv.pl       Perl routine to get environment into variables
 lib/integer.pm         For "use integer"
 lib/less.pm            For "use less"
-lib/lib.pm.PL          For "use lib"
+lib/lib_pm.PL          For "use lib", produces lib/lib.pm
 lib/locale.pm          For "use locale"
 lib/look.pl            A "look" equivalent
 lib/newgetopt.pl       A perl library supporting long option parsing
@@ -1008,6 +1008,7 @@ lib/validate.pl           Perl library supporting wholesale file mode validation
 lib/vars.pm            Declare pseudo-imported global variables
 lib/warnings.pm                For "use warnings"
 lib/warnings/register.pm       For "use warnings::register"
+lib/Win32.pod          Documentation for Win32 extras
 makeaperl.SH           perl script that produces a new perl binary
 makedef.pl             Create symbol export lists for linking
 makedepend.SH          Precursor to makedepend
@@ -1117,11 +1118,10 @@ plan9/plan9.c           Plan9 port: Plan9-specific C routines
 plan9/plan9ish.h       Plan9 port: Plan9-specific C header file
 plan9/setup.rc         Plan9 port: script for easy build+install
 plan9/versnum          Plan9 port: script to print version number
-pod/Makefile           Make pods into something else
-pod/Win32.pod          Documentation for Win32 extras
-pod/buildtoc           generate perltoc.pod
+pod/Makefile.SH                generate Makefile whichs makes pods into something else
+pod/buildtoc.PL                generate buildtoc which generates perltoc.pod
 pod/checkpods.PL       Tool to check for common errors in pods
-pod/perl.pod           Top level perl man page
+pod/perl.pod           Top level perl documentation
 pod/perl5004delta.pod  Changes from 5.003 to 5.004
 pod/perl5005delta.pod  Changes from 5.004 to 5.005
 pod/perl56delta.pod    Changes from 5.005 to 5.6
index 52789b9..a80e93b 100644 (file)
@@ -222,21 +222,24 @@ private = preplibrary lib/ExtUtils/Miniperl.pm lib/Config.pm
 # Files to be built with variable substitution before miniperl
 # is available.
 sh = Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH \
-       makedir.SH myconfig.SH writemain.SH
+       makedir.SH myconfig.SH writemain.SH pod/Makefile.SH
 
 shextract = Makefile cflags config.h makeaperl makedepend \
-       makedir myconfig writemain
+       makedir myconfig writemain pod/Makefile
 
 # Files to be built with variable substitution after miniperl is
 # available.  Dependencies handled manually below (for now).
 
 pl = pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL \
-       pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL lib/lib.pm.PL
+       pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL \
+       pod/buildtoc.PL
 
+# lib/lib.pm is not listed here because it has a rule of its own.
 plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \
-       pod/pod2usage pod/podchecker pod/podselect lib/lib.pm
+       pod/pod2usage pod/podchecker pod/podselect \
+       pod/buildtoc
 
-addedbyconf = UU $(shextract) $(plextract) pstruct
+addedbyconf = UU $(shextract) $(plextract) lib/lib.pm pstruct
 
 h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h
 h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h
@@ -286,7 +289,7 @@ compile: all
 translators:   miniperl lib/Config.pm FORCE
        @echo " "; echo "       Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all
 
-utilities:     miniperl lib/Config.pm $(plextract) FORCE
+utilities:     miniperl lib/Config.pm $(plextract) lib/lib.pm FORCE
        @echo " "; echo "       Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all
 
 
@@ -526,6 +529,9 @@ lib/re.pm: ext/re/re.pm
 $(plextract):  miniperl lib/Config.pm
        $(LDLIBPTH) ./miniperl -Ilib $@.PL
 
+lib/lib.pm:    miniperl lib/Config.pm
+       $(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL
+
 extra.pods: miniperl
        -@test -f extra.pods && rm -f `cat extra.pods`
        -@rm -f extra.pods
@@ -635,6 +641,9 @@ regen_headers:      FORCE
        -perl regcomp.pl
        -perl warnings.pl
 
+regen_pods:    FORCE
+       -cd pod; $(LDLIBPTH) make regen_pods
+
 # Extensions:
 # Names added to $(dynamic_ext) or $(static_ext) or $(nonxs_ext) will
 # automatically get built.  There should ordinarily be no need to change
diff --git a/doio.c b/doio.c
index 970eaed..8789df9 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -476,13 +476,13 @@ Perl_do_open9(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
            SV *sv;
 
            PerlLIO_dup2(PerlIO_fileno(fp), fd);
-           MUTEX_LOCK(&PL_fdpid_mutex);
+           LOCK_FDPID_MUTEX;
            sv = *av_fetch(PL_fdpid,PerlIO_fileno(fp),TRUE);
            (void)SvUPGRADE(sv, SVt_IV);
            pid = SvIVX(sv);
            SvIVX(sv) = 0;
            sv = *av_fetch(PL_fdpid,fd,TRUE);
-           MUTEX_UNLOCK(&PL_fdpid_mutex);
+           UNLOCK_FDPID_MUTEX;
            (void)SvUPGRADE(sv, SVt_IV);
            SvIVX(sv) = pid;
            if (!was_fdopen)
diff --git a/doop.c b/doop.c
index 3394db2..0c6e690 100644 (file)
--- a/doop.c
+++ b/doop.c
 
 
 #define HALF_UPGRADE(start,end) {                                    \
-                                U8* new;                             \
+                                U8* newstr;                          \
                                 STRLEN len;                          \
                                 len = end-start;                     \
-                                new = bytes_to_utf8(start, &len);    \
-                                Copy(new,start,len,U8*);             \
+                                newstr = bytes_to_utf8(start, &len); \
+                                Copy(newstr,start,len,U8*);          \
                                 end = start + len;                   \
                                 }
 
diff --git a/embed.h b/embed.h
index 6fc3721..928be19 100644 (file)
--- a/embed.h
+++ b/embed.h
 #endif
 #define runops_standard                Perl_runops_standard
 #define runops_debug           Perl_runops_debug
+#if defined(USE_THREADS)
+#define sv_lock                        Perl_sv_lock
+#endif
 #define sv_catpvf_mg           Perl_sv_catpvf_mg
 #define sv_vcatpvf_mg          Perl_sv_vcatpvf_mg
 #define sv_catpv_mg            Perl_sv_catpv_mg
 #define xstat                  S_xstat
 #  endif
 #endif
-#define lock                   Perl_lock
 #if defined(PERL_OBJECT)
 #endif
 #define ck_anoncode            Perl_ck_anoncode
 #endif
 #define runops_standard()      Perl_runops_standard(aTHX)
 #define runops_debug()         Perl_runops_debug(aTHX)
+#if defined(USE_THREADS)
+#define sv_lock(a)             Perl_sv_lock(aTHX_ a)
+#endif
 #define sv_vcatpvf_mg(a,b,c)   Perl_sv_vcatpvf_mg(aTHX_ a,b,c)
 #define sv_catpv_mg(a,b)       Perl_sv_catpv_mg(aTHX_ a,b)
 #define sv_catpvn_mg(a,b,c)    Perl_sv_catpvn_mg(aTHX_ a,b,c)
 #define xstat(a)               S_xstat(aTHX_ a)
 #  endif
 #endif
-#define lock(a)                        Perl_lock(aTHX_ a)
 #if defined(PERL_OBJECT)
 #endif
 #define ck_anoncode(a)         Perl_ck_anoncode(aTHX_ a)
 #define runops_standard                Perl_runops_standard
 #define Perl_runops_debug      CPerlObj::Perl_runops_debug
 #define runops_debug           Perl_runops_debug
+#if defined(USE_THREADS)
+#define Perl_sv_lock           CPerlObj::Perl_sv_lock
+#define sv_lock                        Perl_sv_lock
+#endif
 #define Perl_sv_catpvf_mg      CPerlObj::Perl_sv_catpvf_mg
 #define sv_catpvf_mg           Perl_sv_catpvf_mg
 #define Perl_sv_vcatpvf_mg     CPerlObj::Perl_sv_vcatpvf_mg
 #define xstat                  S_xstat
 #  endif
 #endif
-#define Perl_lock              CPerlObj::Perl_lock
-#define lock                   Perl_lock
 #if defined(PERL_OBJECT)
 #endif
 #define Perl_ck_anoncode       CPerlObj::Perl_ck_anoncode
index de65cdc..2b75a49 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -2106,6 +2106,9 @@ Ap        |struct perl_vars *|GetVars
 #endif
 Ap     |int    |runops_standard
 Ap     |int    |runops_debug
+#if defined(USE_THREADS)
+Ap     |SV*    |sv_lock        |SV *sv
+#endif
 Afpd   |void   |sv_catpvf_mg   |SV *sv|const char* pat|...
 Ap     |void   |sv_vcatpvf_mg  |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_catpv_mg    |SV *sv|const char *ptr
@@ -2514,8 +2517,6 @@ s |void   |xstat          |int
 #  endif
 #endif
 
-Arp    |SV*    |lock           |SV *sv
-
 #if defined(PERL_OBJECT)
 };
 #endif
index b9b828f..f3a8247 100644 (file)
@@ -2,6 +2,14 @@
 # vishalb@hotmail.com 
 package B::Stash;
 
+=pod
+
+=head1 NAME
+
+B::Stash - show what stashes are loaded
+
+=cut
+
 BEGIN { %Seen = %INC }
 
 CHECK {
index 186d72e..9abad2a 100644 (file)
@@ -65,15 +65,19 @@ all.  This could be construed to be a bug.
 
 =item _exit
 
-This is identical to the C function C<_exit()>.
+This is identical to the C function C<_exit()>.  It exits the program
+immediately which means among other things buffered I/O is B<not> flushed.
 
 =item abort
 
-This is identical to the C function C<abort()>.
+This is identical to the C function C<abort()>.  It terminates the
+process with a C<SIGABRT> signal unless caught by a signal handler or
+if the handler does not return normally (it e.g.  does a C<longjmp>).
 
 =item abs
 
-This is identical to Perl's builtin C<abs()> function.
+This is identical to Perl's builtin C<abs()> function, returning
+the absolute value of its numerical argument.
 
 =item access
 
@@ -83,83 +87,117 @@ Determines the accessibility of a file.
                print "have read permission\n";
        }
 
-Returns C<undef> on failure.
+Returns C<undef> on failure.  Note: do not use C<access()> for
+security purposes.  Between the C<access()> call and the operation
+you are preparing for the permissions might change: a classic
+I<race condition>.
 
 =item acos
 
-This is identical to the C function C<acos()>.
+This is identical to the C function C<acos()>, returning
+the arcus cosine of its numerical argument.
 
 =item alarm
 
-This is identical to Perl's builtin C<alarm()> function.
+This is identical to Perl's builtin C<alarm()> function,
+either for arming or disarming the C<SIGARLM> timer.
 
 =item asctime
 
-This is identical to the C function C<asctime()>.
+This is identical to the C function C<asctime()>.  It returns
+a string of the form
+
+       "Fri Jun  2 18:22:13 2000\n\0"
+
+and it is called thusly
+
+       $asctime = asctime($sec, $min, $hour, $mday, $mon, $year,
+                          $wday, $yday, $isdst);
+
+The C<$mon> is zero-based: January equals C<0>.  The C<$year> is
+1900-based: 2001 equals C<101>.  The C<$wday>, C<$yday>, and C<$isdst>
+default to zero (and the first two are usually ignored anyway).
 
 =item asin
 
-This is identical to the C function C<asin()>.
+This is identical to the C function C<asin()>, returning
+the arcus sine of its numerical argument.
 
 =item assert
 
-Unimplemented.
+Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
+to achieve similar things.
 
 =item atan
 
-This is identical to the C function C<atan()>.
+This is identical to the C function C<atan()>, returning the
+arcus tangent of its numerical argument.
 
 =item atan2
 
-This is identical to Perl's builtin C<atan2()> function.
+This is identical to Perl's builtin C<atan2()> function, returning
+the arcus tangent defined by its two numerical arguments, the I<y>
+coordinate and the I<x> coordinate.
 
 =item atexit
 
-atexit() is C-specific: use END {} instead.
+atexit() is C-specific: use C<END {}> instead, see L<perlsub>.
 
 =item atof
 
-atof() is C-specific.
+atof() is C-specific.  Perl converts strings to numbers transparently.
+If you need to force a scalar to a number, add a zero to it.
 
 =item atoi
 
-atoi() is C-specific.
+atoi() is C-specific.  Perl converts strings to numbers transparently.
+If you need to force a scalar to a number, add a zero to it.
+If you need to have just the integer part, see L<perlfunc/int>.
 
 =item atol
 
-atol() is C-specific.
+atol() is C-specific.  Perl converts strings to numbers transparently.
+If you need to force a scalar to a number, add a zero to it.
+If you need to have just the integer part, see L<perlfunc/int>.
 
 =item bsearch
 
-bsearch() not supplied.
+bsearch() not supplied.  For doing binary search on wordlists,
+see L<Search::Dict>.
 
 =item calloc
 
-calloc() is C-specific.
+calloc() is C-specific.  Perl does memory management transparently.
 
 =item ceil
 
-This is identical to the C function C<ceil()>.
+This is identical to the C function C<ceil()>, returning the smallest
+integer value greater than or equal to the given numerical argument.
 
 =item chdir
 
-This is identical to Perl's builtin C<chdir()> function.
+This is identical to Perl's builtin C<chdir()> function, allowing
+one to change the working (default) directory, see L<perlfunc/chdir>.
 
 =item chmod
 
-This is identical to Perl's builtin C<chmod()> function.
+This is identical to Perl's builtin C<chmod()> function, allowing
+one to change file and directory permissions, see L<perlfunc/chmod>.
 
 =item chown
 
-This is identical to Perl's builtin C<chown()> function.
+This is identical to Perl's builtin C<chown()> function, allowing one
+to change file and directory owners and groups, see L<perlfunc/chown>.
 
 =item clearerr
 
-Use method C<IO::Handle::clearerr()> instead.
+Use the method L<IO::Handle::clearerr()> instead, to reset the error
+state (if any) and EOF state (if any) of the given stream.
 
 =item clock
 
-This is identical to the C function C<clock()>.
+This is identical to the C function C<clock()>, returning the
+amount of spent processor time in microseconds.
 
 =item close
 
@@ -171,17 +209,22 @@ C<POSIX::open>.
 
 Returns C<undef> on failure.
 
+See also L<perlfunc/close>.
+
 =item closedir
 
-This is identical to Perl's builtin C<closedir()> function.
+This is identical to Perl's builtin C<closedir()> function for closing
+a directory handle, see L<perlfunc/closedir>.
 
 =item cos
 
-This is identical to Perl's builtin C<cos()> function.
+This is identical to Perl's builtin C<cos()> function, for returning
+the cosine of its numerical argument, see L<perlfunc/cos>.
 
 =item cosh
 
-This is identical to the C function C<cosh()>.
+This is identical to the C function C<cosh()>, for returning
+the hyperbolic cosine of its numeric argument.
 
 =item creat
 
@@ -191,6 +234,8 @@ C<POSIX::open>.  Use C<POSIX::close> to close the file.
        $fd = POSIX::creat( "foo", 0611 );
        POSIX::close( $fd );
 
+See also L<perlfunc/sysopen> and its C<O_CREAT> flag.
+
 =item ctermid
 
 Generates the path name for the controlling terminal.
@@ -199,25 +244,30 @@ Generates the path name for the controlling terminal.
 
 =item ctime
 
-This is identical to the C function C<ctime()>.
+This is identical to the C function C<ctime()> and equivalent
+to C<asctime(localtime(...))>, see L</asctime> and L</localtime>.
 
 =item cuserid
 
-Get the character login name of the user.
+Get the login name of the owner of the current process.
 
        $name = POSIX::cuserid();
 
 =item difftime
 
-This is identical to the C function C<difftime()>.
+This is identical to the C function C<difftime()>, for returning
+the time difference (in seconds) between two times (as returned
+by C<time()>), see L</time>.
 
 =item div
 
-div() is C-specific.
+div() is C-specific, use L<perlfunc/int> on the usual C</> division and
+the modulus C<%>.
 
 =item dup
 
-This is similar to the C function C<dup()>.
+This is similar to the C function C<dup()>, for duplicating a file
+descriptor.
 
 This uses file descriptors such as those obtained by calling
 C<POSIX::open>.
@@ -226,7 +276,8 @@ Returns C<undef> on failure.
 
 =item dup2
 
-This is similar to the C function C<dup2()>.
+This is similar to the C function C<dup2()>, for duplicating a file
+descriptor to an another known file descriptor.
 
 This uses file descriptors such as those obtained by calling
 C<POSIX::open>.
@@ -239,41 +290,47 @@ Returns the value of errno.
 
        $errno = POSIX::errno();
 
+This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
+
 =item execl
 
-execl() is C-specific.
+execl() is C-specific, see L<perlfunc/exec>.
 
 =item execle
 
-execle() is C-specific.
+execle() is C-specific, see L<perlfunc/exec>.
 
 =item execlp
 
-execlp() is C-specific.
+execlp() is C-specific, see L<perlfunc/exec>.
 
 =item execv
 
-execv() is C-specific.
+execv() is C-specific, see L<perlfunc/exec>.
 
 =item execve
 
-execve() is C-specific.
+execve() is C-specific, see L<perlfunc/exec>.
 
 =item execvp
 
-execvp() is C-specific.
+execvp() is C-specific, see L<perlfunc/exec>.
 
 =item exit
 
-This is identical to Perl's builtin C<exit()> function.
+This is identical to Perl's builtin C<exit()> function for exiting the
+program, see L<perlfunc/exit>.
 
 =item exp
 
-This is identical to Perl's builtin C<exp()> function.
+This is identical to Perl's builtin C<exp()> function for
+returning the exponent (I<e>-based) of the numerical argument,
+see L<perlfunc/exp>.
 
 =item fabs
 
-This is identical to Perl's builtin C<abs()> function.
+This is identical to Perl's builtin C<abs()> function for returning
+the absolute value of the numerical argument, see L<perlfunc/abs>.
 
 =item fclose
 
@@ -281,7 +338,8 @@ Use method C<IO::Handle::close()> instead.
 
 =item fcntl
 
-This is identical to Perl's builtin C<fcntl()> function.
+This is identical to Perl's builtin C<fcntl()> function,
+see L<perlfunc/fcntl>.
 
 =item fdopen
 
@@ -309,7 +367,8 @@ Use method C<IO::Seekable::getpos()> instead.
 
 =item fgets
 
-Use method C<IO::Handle::gets()> instead.
+Use method C<IO::Handle::gets()> instead.  Similar to E<lt>E<gt>, also known
+as L<perlfunc/readline>.
 
 =item fileno
 
@@ -317,12 +376,19 @@ Use method C<IO::Handle::fileno()> instead.
 
 =item floor
 
-This is identical to the C function C<floor()>.
+This is identical to the C function C<floor()>, returning the largest
+integer value less than or equal to the numerical argument.
 
 =item fmod
 
 This is identical to the C function C<fmod()>.
 
+       $r = modf($x, $y);
+
+It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
+The C<$r> has the same sign as C<$x> and magnitude (absolute value)
+less than the magnitude of C<$y>.
+
 =item fopen
 
 Use method C<IO::File::open()> instead.
@@ -346,37 +412,37 @@ Returns C<undef> on failure.
 
 =item fprintf
 
-fprintf() is C-specific--use printf instead.
+fprintf() is C-specific, see L<perlfunc/printf> instead.
 
 =item fputc
 
-fputc() is C-specific--use print instead.
+fputc() is C-specific, see L<perlfunc/print> instead.
 
 =item fputs
 
-fputs() is C-specific--use print instead.
+fputs() is C-specific, see L<perlfunc/print> instead.
 
 =item fread
 
-fread() is C-specific--use read instead.
+fread() is C-specific, see L<perlfunc/read> instead.
 
 =item free
 
-free() is C-specific.
+free() is C-specific.  Perl does memory management transparently.
 
 =item freopen
 
-freopen() is C-specific--use open instead.
+freopen() is C-specific, see L<perlfunc/open> instead.
 
 =item frexp
 
 Return the mantissa and exponent of a floating-point number.
 
-       ($mantissa, $exponent) = POSIX::frexp( 3.14 );
+       ($mantissa, $exponent) = POSIX::frexp( 1.234e56 );
 
 =item fscanf
 
-fscanf() is C-specific--use <> and regular expressions instead.
+fscanf() is C-specific, use E<lt>E<gt> and regular expressions instead.
 
 =item fseek
 
@@ -401,170 +467,217 @@ Use method C<IO::Seekable::tell()> instead.
 
 =item fwrite
 
-fwrite() is C-specific--use print instead.
+fwrite() is C-specific, see L<perlfunc/print> instead.
 
 =item getc
 
-This is identical to Perl's builtin C<getc()> function.
+This is identical to Perl's builtin C<getc()> function,
+see L<perlfunc/getc>.
 
 =item getchar
 
-Returns one character from STDIN.
+Returns one character from STDIN.  Identical to Perl's C<getc()>,
+see L<perlfunc/getc>.
 
 =item getcwd
 
 Returns the name of the current working directory.
+See also L<Cwd>.
 
 =item getegid
 
-Returns the effective group id.
+Returns the effective group identifier.  Similar to Perl' s builtin
+variable C<$(>, see L<perlvar/$EGID>.
 
 =item getenv
 
 Returns the value of the specified enironment variable.
+The same information is available through the C<%ENV> array.
 
 =item geteuid
 
-Returns the effective user id.
+Returns the effective user identifier.  Identical to Perl's builtin C<$E<gt>>
+variable, see L<perlvar/$EUID>.
 
 =item getgid
 
-Returns the user's real group id.
+Returns the user's real group identifier.  Similar to Perl's builtin
+variable C<$)>, see L<perlvar/$GID>.
 
 =item getgrgid
 
-This is identical to Perl's builtin C<getgrgid()> function.
+This is identical to Perl's builtin C<getgrgid()> function for
+returning group entries by group identifiers, see
+L<perlfunc/getgrgid>.
 
 =item getgrnam
 
-This is identical to Perl's builtin C<getgrnam()> function.
+This is identical to Perl's builtin C<getgrnam()> function for
+returning group entries by group names, see L<perlfunc/getgrnam>.
 
 =item getgroups
 
-Returns the ids of the user's supplementary groups.
+Returns the ids of the user's supplementary groups.  Similar to Perl's
+builtin variable C<$)>, see L<perlvar/$GID>.
 
 =item getlogin
 
-This is identical to Perl's builtin C<getlogin()> function.
+This is identical to Perl's builtin C<getlogin()> function for
+returning the user name associated with the current session, see
+L<perlfunc/getlogin>.
 
 =item getpgrp
 
-This is identical to Perl's builtin C<getpgrp()> function.
+This is identical to Perl's builtin C<getpgrp()> function for
+returning the prcess group identifier of the current process, see
+L<perlfunc/getpgrp>.
 
 =item getpid
 
-Returns the process's id.
+Returns the process identifier.  Identical to Perl's builtin
+variable C<$$>, see L<perlvar/$PID>.
 
 =item getppid
 
-This is identical to Perl's builtin C<getppid()> function.
+This is identical to Perl's builtin C<getppid()> function for
+returning the process identifier of the parent process of the current
+process , see L<perlfunc/getppid>.
 
 =item getpwnam
 
-This is identical to Perl's builtin C<getpwnam()> function.
+This is identical to Perl's builtin C<getpwnam()> function for
+returning user entries by user names, see L<perlfunc/getpwnam>.
 
 =item getpwuid
 
-This is identical to Perl's builtin C<getpwuid()> function.
+This is identical to Perl's builtin C<getpwuid()> function for
+returning user entries by user identifiers, see L<perlfunc/getpwuid>.
 
 =item gets
 
-Returns one line from STDIN.
+Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known
+as the C<readline()> function, see L<perlfunc/readline>.
+
+B<NOTE>: if you have C programs that still use C<gets()>, be very
+afraid.  The C<gets()> function is a source of endless grief because
+it has no buffer overrun checks.  It should B<never> be used.  The
+C<fgets()> function should be preferred instead.
 
 =item getuid
 
-Returns the user's id.
+Returns the user's identifier.  Identical to Perl's builtin C<$E<lt>> variable,
+see L<perlvar/$UID>.
 
 =item gmtime
 
-This is identical to Perl's builtin C<gmtime()> function.
+This is identical to Perl's builtin C<gmtime()> function for
+converting seconds since the epoch to a date in Greenwich Mean Time,
+see L<perlfunc/gmtime>.
 
 =item isalnum
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:isalnum:]]/> construct instead, or possibly the C</\w/> construct.
 
 =item isalpha
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:isalpha:]]/> construct instead.
 
 =item isatty
 
 Returns a boolean indicating whether the specified filehandle is connected
-to a tty.
+to a tty.  Similar to the C<-t> operator, see L<perlfunc/-X>.
 
 =item iscntrl
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:iscntrl:]]/> construct instead.
 
 =item isdigit
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:isdigit:]]/> construct instead, or the C</\d/> construct.
 
 =item isgraph
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:isgraph:]]/> construct instead.
 
 =item islower
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:islower:]]/> construct instead.  Do B<not> use C</a-z/>.
 
 =item isprint
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:isprint:]]/> construct instead.
 
 =item ispunct
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:ispunct:]]/> construct instead.
 
 =item isspace
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:isspace:]]/> construct instead, or the C</\s/> construct.
 
 =item isupper
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:isupper:]]/> construct instead.  Do B<not> use C</A-Z/>.
 
 =item isxdigit
 
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.
+character or to a whole string.  Consider using regular expressions and the
+C</[[:isxdigit:]]/> construct instead, or simply C</[0-9a-f]/i>.
 
 =item kill
 
-This is identical to Perl's builtin C<kill()> function.
+This is identical to Perl's builtin C<kill()> function for sending
+signals to processes (oftern to terminate them), see L<perlfunc/kill>.
 
 =item labs
 
-labs() is C-specific, use abs instead.
+(For returning absolute values of long integers.)
+labs() is C-specific, see L<perlfunc/abs> instead.
 
 =item ldexp
 
-This is identical to the C function C<ldexp()>.
+This is identical to the C function C<ldexp()>
+for multiplying floating point numbers with powers of two.
+
+       $x_quadrupled = POSIX::ldexp($x, 2);
 
 =item ldiv
 
-ldiv() is C-specific, use / and int instead.
+(For computing dividends of long integers.)
+ldiv() is C-specific, use C</> and C<int()> instead.
 
 =item link
 
-This is identical to Perl's builtin C<link()> function.
+This is identical to Perl's builtin C<link()> function
+for creating hard links into files, see L<perlfunc/link>.
 
 =item localeconv
 
 Get numeric formatting information.  Returns a reference to a hash
 containing the current locale formatting values.
 
-The database for the B<de> (Deutsch or German) locale.
+Here is how to query the database for the B<de> (Deutsch or German) locale.
 
        $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
        print "Locale = $loc\n";
@@ -590,19 +703,34 @@ The database for the B<de> (Deutsch or German) locale.
 
 =item localtime
 
-This is identical to Perl's builtin C<localtime()> function.
+This is identical to Perl's builtin C<localtime()> function for
+converting seconds since the epoch to a date see L<perlfunc/localtime>.
 
 =item log
 
-This is identical to Perl's builtin C<log()> function.
+This is identical to Perl's builtin C<log()> function,
+returning the natural (I<e>-based) logarithm of the numerical argument,
+see L<perlfunc/log>.
 
 =item log10
 
-This is identical to the C function C<log10()>.
+This is identical to the C function C<log10()>,
+returning the 10-base logarithm of the numerical argument.
+You can also use
+
+    sub log10 { log($_[0]) / log(10) }
+
+or
+
+    sub log10 { log($_[0]) / 2.30258509299405 }  
+
+or
+
+    sub log10 { log($_[0]) * 0.434294481903252 }
 
 =item longjmp
 
-longjmp() is C-specific: use die instead.
+longjmp() is C-specific: use L<perlfunc/die> instead.
 
 =item lseek
 
@@ -616,49 +744,63 @@ Returns C<undef> on failure.
 
 =item malloc
 
-malloc() is C-specific.
+malloc() is C-specific.  Perl does memory management transparently.
 
 =item mblen
 
 This is identical to the C function C<mblen()>.
+Perl does not have any support for the wide and multibyte
+characters of the C standards, so this might be a rather 
+useless function.
 
 =item mbstowcs
 
 This is identical to the C function C<mbstowcs()>.
+Perl does not have any support for the wide and multibyte
+characters of the C standards, so this might be a rather 
+useless function.
 
 =item mbtowc
 
 This is identical to the C function C<mbtowc()>.
+Perl does not have any support for the wide and multibyte
+characters of the C standards, so this might be a rather 
+useless function.
 
 =item memchr
 
-memchr() is C-specific, use index() instead.
+memchr() is C-specific, see L<perlfunc/index> instead.
 
 =item memcmp
 
-memcmp() is C-specific, use eq instead.
+memcmp() is C-specific, use C<eq> instead, see L<perlop>.
 
 =item memcpy
 
-memcpy() is C-specific, use = instead.
+memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
 
 =item memmove
 
-memmove() is C-specific, use = instead.
+memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
 
 =item memset
 
-memset() is C-specific, use x instead.
+memset() is C-specific, use C<x> instead, see L<perlop>.
 
 =item mkdir
 
-This is identical to Perl's builtin C<mkdir()> function.
+This is identical to Perl's builtin C<mkdir()> function
+for creating directories, see L<perlfunc/mkdir>.
 
 =item mkfifo
 
-This is similar to the C function C<mkfifo()>.
+This is similar to the C function C<mkfifo()> for creating
+FIFO special files.
 
-Returns C<undef> on failure.
+       if (mkfifo($path, $mode)) { ....
+
+Returns C<undef> on failure.  The C<$mode> is similar to the
+mode of C<mkdir()>, see L<perlfunc/mkdir>.
 
 =item mktime
 
@@ -689,13 +831,16 @@ Return the integral and fractional parts of a floating-point number.
 
 =item nice
 
-This is similar to the C function C<nice()>.
+This is similar to the C function C<nice()>, for changing
+the scheduling preference of the current process.  Positive
+arguments mean more polite process, negative values more
+needy process.  Normal user processes can only be more polite.
 
 Returns C<undef> on failure.
 
 =item offsetof
 
-offsetof() is C-specific.
+offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead.
 
 =item open
 
@@ -720,6 +865,8 @@ Create a new file with mode 0640.  Set up the file for writing.
 
 Returns C<undef> on failure.
 
+See also L<perlfunc/sysopen>.
+
 =item opendir
 
 Open a directory for reading.
@@ -743,13 +890,17 @@ Returns C<undef> on failure.
 
 =item pause
 
-This is similar to the C function C<pause()>.
+This is similar to the C function C<pause()>, which suspends
+the execution of the current process until a signal is received.
 
 Returns C<undef> on failure.
 
 =item perror
 
-This is identical to the C function C<perror()>.
+This is identical to the C function C<perror()>, which outputs to the
+standard error stream the specified message followed by ": " and the
+current error string.  Use the C<warn()> function and the C<$!>
+variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>.
 
 =item pipe
 
@@ -760,39 +911,45 @@ returned by C<POSIX::open>.
        POSIX::write( $fd0, "hello", 5 );
        POSIX::read( $fd1, $buf, 5 );
 
+See also L<perlfunc/pipe>.
+
 =item pow
 
-Computes $x raised to the power $exponent.
+Computes C<$x> raised to the power C<$exponent>.
 
        $ret = POSIX::pow( $x, $exponent );
 
+You can also use the C<**> operator, see L<perlop>.
+
 =item printf
 
-Prints the specified arguments to STDOUT.
+Formats and prints the specified arguments to STDOUT.
+See also L<perlfunc/printf>.
 
 =item putc
 
-putc() is C-specific--use print instead.
+putc() is C-specific, see L<perlfunc/print> instead.
 
 =item putchar
 
-putchar() is C-specific--use print instead.
+putchar() is C-specific, see L<perlfunc/print> instead.
 
 =item puts
 
-puts() is C-specific--use print instead.
+puts() is C-specific, see L<perlfunc/print> instead.
 
 =item qsort
 
-qsort() is C-specific, use sort instead.
+qsort() is C-specific, see L<perlfunc/sort> instead.
 
 =item raise
 
 Sends the specified signal to the current process.
+See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
 
 =item rand
 
-rand() is non-portable, use Perl's rand instead.
+C<rand()> is non-portable, see L<perlfunc/rand> instead.
 
 =item read
 
@@ -805,21 +962,26 @@ read then Perl will extend it to make room for the request.
 
 Returns C<undef> on failure.
 
+See also L<perlfunc/sysread>.
+
 =item readdir
 
-This is identical to Perl's builtin C<readdir()> function.
+This is identical to Perl's builtin C<readdir()> function
+for reading directory entries, see L<perlfunc/readdir>.
 
 =item realloc
 
-realloc() is C-specific.
+realloc() is C-specific.  Perl does memory management transparently.
 
 =item remove
 
-This is identical to Perl's builtin C<unlink()> function.
+This is identical to Perl's builtin C<unlink()> function
+for removing files, see L<perlfunc/unlink>.
 
 =item rename
 
-This is identical to Perl's builtin C<rename()> function.
+This is identical to Perl's builtin C<rename()> function
+for renaming files, see L<perlfunc/rename>.
 
 =item rewind
 
@@ -827,23 +989,29 @@ Seeks to the beginning of the file.
 
 =item rewinddir
 
-This is identical to Perl's builtin C<rewinddir()> function.
+This is identical to Perl's builtin C<rewinddir()> function for
+rewinding directory entry streams, see L<perlfunc/rewinddir>.
 
 =item rmdir
 
-This is identical to Perl's builtin C<rmdir()> function.
+This is identical to Perl's builtin C<rmdir()> function
+for removing (empty) directories, see L<perlfunc/rmdir>.
 
 =item scanf
 
-scanf() is C-specific--use <> and regular expressions instead.
+scanf() is C-specific, use E<lt>E<gt> and regular expressions instead,
+see L<perlre>.
 
 =item setgid
 
-Sets the real group id for this process.
+Sets the real group identifier for this process.
+Identical to assigning a value to the Perl's builtin C<$)> variable,
+see L<perlvar/$UID>.
 
 =item setjmp
 
-setjmp() is C-specific: use eval {} instead.
+C<setjmp()> is C-specific: use C<eval {}> instead,
+see L<perlfunc/eval>.
 
 =item setlocale
 
@@ -879,17 +1047,21 @@ out which locales are available in your system.
 
 =item setpgid
 
-This is similar to the C function C<setpgid()>.
+This is similar to the C function C<setpgid()> for
+setting the process group identifier of the current process.
 
 Returns C<undef> on failure.
 
 =item setsid
 
-This is identical to the C function C<setsid()>.
+This is identical to the C function C<setsid()> for
+setting the session identifier of the current process.
 
 =item setuid
 
-Sets the real user id for this process.
+Sets the real user identifier for this process.
+Identical to assigning a value to the Perl's builtin C<$E<lt>> variable,
+see L<perlvar/$UID>.
 
 =item sigaction
 
@@ -905,7 +1077,7 @@ Returns C<undef> on failure.
 
 =item siglongjmp
 
-siglongjmp() is C-specific: use die instead.
+siglongjmp() is C-specific: use L<perlfunc/die> instead.
 
 =item sigpending
 
@@ -933,7 +1105,8 @@ Returns C<undef> on failure.
 
 =item sigsetjmp
 
-sigsetjmp() is C-specific: use eval {} instead.
+C<sigsetjmp()> is C-specific: use C<eval {}> instead,
+see L<perlfunc/eval>.
 
 =item sigsuspend
 
@@ -949,63 +1122,79 @@ Returns C<undef> on failure.
 
 =item sin
 
-This is identical to Perl's builtin C<sin()> function.
+This is identical to Perl's builtin C<sin()> function
+for returning the sine of the numerical argument,
+see L<perlfunc/sin>.
 
 =item sinh
 
-This is identical to the C function C<sinh()>.
+This is identical to the C function C<sinh()>
+for returning the hyperbolic sine of the numerical argument.
 
 =item sleep
 
-This is identical to Perl's builtin C<sleep()> function.
+This is identical to Perl's builtin C<sleep()> function
+for suspending the execution of the current for process
+for certain number of seconds, see L<perlfunc/sleep>.
 
 =item sprintf
 
-This is identical to Perl's builtin C<sprintf()> function.
+This is similar to Perl's builtin C<sprintf()> function
+for returning a string that has the arguments formatted as requested,
+see L<perlfunc/sprintf>.
 
 =item sqrt
 
 This is identical to Perl's builtin C<sqrt()> function.
+for returning the square root of the numerical argument,
+see L<perlfunc/sqrt>.
 
 =item srand
 
-srand().
+Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
 
 =item sscanf
 
-sscanf() is C-specific--use regular expressions instead.
+sscanf() is C-specific, use regular expressions instead,
+see L<perlre>.
 
 =item stat
 
-This is identical to Perl's builtin C<stat()> function.
+This is identical to Perl's builtin C<stat()> function
+for retutning information about files and directories.
 
 =item strcat
 
-strcat() is C-specific, use .= instead.
+strcat() is C-specific, use C<.=> instead, see L<perlop>.
 
 =item strchr
 
-strchr() is C-specific, use index() instead.
+strchr() is C-specific, see L<perlfunc/index> instead.
 
 =item strcmp
 
-strcmp() is C-specific, use eq instead.
+strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
 
 =item strcoll
 
-This is identical to the C function C<strcoll()>.
+This is identical to the C function C<strcoll()>
+for collating (comparing) strings transformed using
+the C<strxfrm()> function.  Not really needed since
+Perl can do this transparently, see L<perllocale>.
 
 =item strcpy
 
-strcpy() is C-specific, use = instead.
+strcpy() is C-specific, use C<=> instead, see L<perlop>.
 
 =item strcspn
 
-strcspn() is C-specific, use regular expressions instead.
+strcspn() is C-specific, use regular expressions instead,
+see L<perlre>.
 
 =item strerror
 
 Returns the error string for the specified errno.
+Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
 
 =item strftime
 
@@ -1034,39 +1223,38 @@ The string for Tuesday, December 12, 1995.
 
 =item strlen
 
-strlen() is C-specific, use length instead.
+strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>.
 
 =item strncat
 
-strncat() is C-specific, use .= instead.
+strncat() is C-specific, use C<.=> instead, see L<perlop>.
 
 =item strncmp
 
-strncmp() is C-specific, use eq instead.
+strncmp() is C-specific, use C<eq> instead, see L<perlop>.
 
 =item strncpy
 
-strncpy() is C-specific, use = instead.
-
-=item stroul
-
-stroul() is C-specific.
+strncpy() is C-specific, use C<=> instead, see L<perlop>.
 
 =item strpbrk
 
-strpbrk() is C-specific.
+strpbrk() is C-specific, use regular expressions instead,
+see L<perlre>.
 
 =item strrchr
 
-strrchr() is C-specific, use rindex() instead.
+strrchr() is C-specific, see L<perlfunc/rindex> instead.
 
 =item strspn
 
-strspn() is C-specific.
+strspn() is C-specific, use regular expressions instead,
+see L<perlre>.
 
 =item strstr
 
-This is identical to Perl's builtin C<index()> function.
+This is identical to Perl's builtin C<index()> function,
+see L<perlfunc/index>.
 
 =item strtod
 
@@ -1093,7 +1281,8 @@ When called in a scalar context strtod returns the parsed number.
 
 =item strtok
 
-strtok() is C-specific.
+strtok() is C-specific, use regular expressions instead, see
+L<perlre>, or L<perlfunc/split>.
 
 =item strtol
 
@@ -1127,12 +1316,12 @@ When called in a scalar context strtol returns the parsed number.
 
 =item strtoul
 
-String to unsigned (long) integer translation.  strtoul is identical
-to strtol except that strtoul only parses unsigned integers.  See
-I<strtol> for details.
+String to unsigned (long) integer translation.  strtoul() is identical
+to strtol() except that strtoul() only parses unsigned integers.  See
+L</strtol> for details.
 
-Note: Some vendors supply strtod and strtol but not strtoul.
-Other vendors that do suply strtoul parse "-1" as a valid value.
+Note: Some vendors supply strtod() and strtol() but not strtoul().
+Other vendors that do supply strtoul() parse "-1" as a valid value.
 
 =item strxfrm
 
@@ -1140,6 +1329,11 @@ String transformation.  Returns the transformed string.
 
        $dst = POSIX::strxfrm( $src );
 
+Used in conjunction with the C<strcoll()> function, see L</strcoll>.
+
+Not really needed since Perl can do this transparently, see
+L<perllocale>.
+
 =item sysconf
 
 Retrieves values of system configurable variables.
@@ -1152,53 +1346,66 @@ Returns C<undef> on failure.
 
 =item system
 
-This is identical to Perl's builtin C<system()> function.
+This is identical to Perl's builtin C<system()> function, see
+L<perlfunc/system>.
 
 =item tan
 
-This is identical to the C function C<tan()>.
+This is identical to the C function C<tan()>, returning the
+tangent of the numerical argument.
 
 =item tanh
 
-This is identical to the C function C<tanh()>.
+This is identical to the C function C<tanh()>, returning the
+hyperbolic tangent of the numerical argument.
 
 =item tcdrain
 
-This is similar to the C function C<tcdrain()>.
+This is similar to the C function C<tcdrain()> for draining
+the output queue of its argument stream.
 
 Returns C<undef> on failure.
 
 =item tcflow
 
-This is similar to the C function C<tcflow()>.
+This is similar to the C function C<tcflow()> for controlling
+the flow of its argument stream.
 
 Returns C<undef> on failure.
 
 =item tcflush
 
-This is similar to the C function C<tcflush()>.
+This is similar to the C function C<tcflush()> for flushing
+the I/O buffers of its argumeny stream.
 
 Returns C<undef> on failure.
 
 =item tcgetpgrp
 
-This is identical to the C function C<tcgetpgrp()>.
+This is identical to the C function C<tcgetpgrp()> for returning the
+process group identifier of the foreground process group of the controlling
+terminal.
 
 =item tcsendbreak
 
-This is similar to the C function C<tcsendbreak()>.
+This is similar to the C function C<tcsendbreak()> for sending
+a break on its argument stream.
 
 Returns C<undef> on failure.
 
 =item tcsetpgrp
 
-This is similar to the C function C<tcsetpgrp()>.
+This is similar to the C function C<tcsetpgrp()> for setting the
+process group identifier of the foreground process group of the controlling
+terminal.
 
 Returns C<undef> on failure.
 
 =item time
 
-This is identical to Perl's builtin C<time()> function.
+This is identical to Perl's builtin C<time()> function
+for returning the number of seconds since the epoch
+(whatever it is for the system), see L<perlfunc/time>.
 
 =item times
 
@@ -1214,7 +1421,7 @@ seconds.
 
 =item tmpfile
 
-Use method C<IO::File::new_tmpfile()> instead.
+Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
 
 =item tmpnam
 
@@ -1222,17 +1429,26 @@ Returns a name for a temporary file.
 
        $tmpfile = POSIX::tmpnam();
 
+See also L<File::Temp>.
+
 =item tolower
 
-This is identical to Perl's builtin C<lc()> function.
+This is identical to the C function, except that it can apply to a single
+character or to a whole string.  Consider using the C<lc()> function,
+see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
+strings.
 
 =item toupper
 
-This is identical to Perl's builtin C<uc()> function.
+This is identical to the C function, except that it can apply to a single
+character or to a whole string.  Consider using the C<uc()> function,
+see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
+strings.
 
 =item ttyname
 
-This is identical to the C function C<ttyname()>.
+This is identical to the C function C<ttyname()> for returning the
+name of the current terminal.
 
 =item tzname
 
@@ -1243,17 +1459,31 @@ Retrieves the time conversion information from the C<tzname> variable.
 
 =item tzset
 
-This is identical to the C function C<tzset()>.
+This is identical to the C function C<tzset()> for setting
+the current timezone based on the environment variable C<TZ>,
+to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
+functions.
 
 =item umask
 
-This is identical to Perl's builtin C<umask()> function.
+This is identical to Perl's builtin C<umask()> function
+for setting (and querying) the file creation permission mask,
+see L<perlfunc/umask>.
 
 =item uname
 
 Get name of current operating system.
 
-       ($sysname, $nodename, $release, $version, $machine ) = POSIX::uname();
+       ($sysname, $nodename, $release, $version, $machine) = POSIX::uname();
+
+Note that the actual meanings of the various fields are not
+that well standardized, do not expect any great portability.
+The C<$sysname> might be the name of the operating system,
+the C<$nodename> might be the name of the host, the C<$release>
+might be the (major) release number of the operating system,
+the C<$version> might be the (minor) release number of the
+operating system, and the C<$machine> might be a hardware identifier.
+Maybe.
 
 =item ungetc
 
@@ -1261,32 +1491,36 @@ Use method C<IO::Handle::ungetc()> instead.
 
 =item unlink
 
-This is identical to Perl's builtin C<unlink()> function.
+This is identical to Perl's builtin C<unlink()> function
+for removing files, see L<perlfunc/unlink>.
 
 =item utime
 
-This is identical to Perl's builtin C<utime()> function.
+This is identical to Perl's builtin C<utime()> function
+for changing the time stamps of files and directories,
+see L<perlfunc/utime>.
 
 =item vfprintf
 
-vfprintf() is C-specific.
+vfprintf() is C-specific, see L<perlfunc/printf> instead.
 
 =item vprintf
 
-vprintf() is C-specific.
+vprintf() is C-specific, see L<perlfunc/printf> instead.
 
 =item vsprintf
 
-vsprintf() is C-specific.
+vsprintf() is C-specific, see L<perlfunc/sprintf> instead.
 
 =item wait
 
-This is identical to Perl's builtin C<wait()> function.
+This is identical to Perl's builtin C<wait()> function,
+see L<perlfunc/wait>.
 
 =item waitpid
 
 Wait for a child process to change state.  This is identical to Perl's
-builtin C<waitpid()> function.
+builtin C<waitpid()> function, see L<perlfunc/waitpid>.
 
        $pid = POSIX::waitpid( -1, &POSIX::WNOHANG );
        print "status = ", ($? / 256), "\n";
@@ -1294,10 +1528,16 @@ builtin C<waitpid()> function.
 =item wcstombs
 
 This is identical to the C function C<wcstombs()>.
+Perl does not have any support for the wide and multibyte
+characters of the C standards, so this might be a rather 
+useless function.
 
 =item wctomb
 
 This is identical to the C function C<wctomb()>.
+Perl does not have any support for the wide and multibyte
+characters of the C standards, so this might be a rather 
+useless function.
 
 =item write
 
@@ -1310,6 +1550,8 @@ calling C<POSIX::open>.
 
 Returns C<undef> on failure.
 
+See also L<perlfunc/syswrite>.
+
 =back
 
 =head1 CLASSES
@@ -1733,7 +1975,3 @@ WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
 
 =back
 
-=head1 CREATION
-
-This document generated by ./mkposixman.PL version 19960129.
-
index 9053446..719e50a 100644 (file)
@@ -480,6 +480,7 @@ Perl_safexfree
 Perl_GetVars
 Perl_runops_standard
 Perl_runops_debug
+Perl_sv_lock
 Perl_sv_catpvf_mg
 Perl_sv_vcatpvf_mg
 Perl_sv_catpv_mg
@@ -542,4 +543,3 @@ Perl_ptr_table_fetch
 Perl_ptr_table_store
 Perl_ptr_table_split
 Perl_sys_intern_clear
-Perl_sys_intern_init
diff --git a/gv.c b/gv.c
index e24fc45..f18f174 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -438,14 +438,14 @@ Perl_gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method)
     ENTER;
 
 #ifdef USE_THREADS
-    Perl_lock(aTHX_ (SV *)varstash);
+    sv_lock((SV *)varstash);
 #endif
     if (!isGV(vargv))
        gv_init(vargv, varstash, autoload, autolen, FALSE);
     LEAVE;
     varsv = GvSV(vargv);
 #ifdef USE_THREADS
-    Perl_lock(aTHX_ varsv);
+    sv_lock(varsv);
 #endif
     sv_setpv(varsv, HvNAME(stash));
     sv_catpvn(varsv, "::", 2);
index 0a5c48b..cb6dd8a 100644 (file)
@@ -1,5 +1,13 @@
 package CGI::Util;
 
+=pod
+
+=head1 NAME
+
+CGI::Util - various utilities
+
+=cut
+
 use strict;
 use vars '$VERSION','@EXPORT_OK','@ISA','$EBCDIC','@A2E';
 require Exporter;
similarity index 100%
rename from pod/Win32.pod
rename to lib/Win32.pod
similarity index 99%
rename from lib/lib.pm.PL
rename to lib/lib_pm.PL
index 1b5efa0..0d2a73b 100644 (file)
@@ -6,6 +6,7 @@ use Cwd;
 my $origdir = cwd;
 chdir dirname($0);
 my $file = basename($0, '.PL');
+$file =~ s!_(pm)$!.$1!i;
 
 my $Config_archname = defined($Config{'archname'}) ? $Config{'archname'} : '';
 my $Config_ver = defined($Config{'version'}) ? $Config{'version'} : '';
index da6be97..f98075a 100644 (file)
@@ -1,5 +1,13 @@
 package warnings::register ;
 
+=pod
+
+=head1 NAME
+
+warnings::register - warnings import function
+
+=cut
+
 require warnings ;
 
 sub mkMask
index 108993c..a02a298 100644 (file)
@@ -421,7 +421,7 @@ unless ($define{'USE_5005THREADS'}) {
                    Perl_find_threadsv
                    Perl_unlock_condpair
                    Perl_magic_mutexfree
-                   Perl_lock
+                   Perl_sv_lock
                    )];
 }
 
index 4f51cb8..0209fd3 100644 (file)
--- a/objXSUB.h
+++ b/objXSUB.h
 #define Perl_runops_debug      pPerl->Perl_runops_debug
 #undef  runops_debug
 #define runops_debug           Perl_runops_debug
+#if defined(USE_THREADS)
+#undef  Perl_sv_lock
+#define Perl_sv_lock           pPerl->Perl_sv_lock
+#undef  sv_lock
+#define sv_lock                        Perl_sv_lock
+#endif
 #undef  Perl_sv_catpvf_mg
 #define Perl_sv_catpvf_mg      pPerl->Perl_sv_catpvf_mg
 #undef  sv_catpvf_mg
 #  if defined(LEAKTEST)
 #  endif
 #endif
-#undef  Perl_lock
-#define Perl_lock              pPerl->Perl_lock
-#undef  lock
-#define lock                   Perl_lock
 #if defined(PERL_OBJECT)
 #endif
 
index 29d669a..6a54b94 100644 (file)
--- a/perlapi.c
+++ b/perlapi.c
@@ -3533,6 +3533,15 @@ Perl_runops_debug(pTHXo)
 {
     return ((CPerlObj*)pPerl)->Perl_runops_debug();
 }
+#if defined(USE_THREADS)
+
+#undef  Perl_sv_lock
+SV*
+Perl_sv_lock(pTHXo_ SV *sv)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_lock(sv);
+}
+#endif
 
 #undef  Perl_sv_catpvf_mg
 void
diff --git a/pod/Makefile b/pod/Makefile
deleted file mode 100644 (file)
index a6f4efb..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-CONVERTERS = pod2html pod2latex pod2man pod2text checkpods \
-               pod2usage podchecker podselect
-
-HTMLROOT = /   # Change this to fix cross-references in HTML
-POD2HTML = pod2html \
-           --htmlroot=$(HTMLROOT) \
-           --podroot=.. --podpath=pod:lib:ext:vms \
-           --libpods=perlfunc:perlguts:perlvar:perlrun:perlop
-
-all: $(CONVERTERS) man
-
-converters: $(CONVERTERS)
-
-PERL = ../miniperl
-REALPERL = ../perl
-
-POD = \
-       perl.pod        \
-       perl5004delta.pod       \
-       perl5005delta.pod       \
-       perl56delta.pod \
-       perlapi.pod     \
-       perlapio.pod    \
-       perlbook.pod    \
-       perlboot.pod    \
-       perlbot.pod     \
-       perlcall.pod    \
-       perlcompile.pod \
-       perldata.pod    \
-       perldbmfilter.pod       \
-       perldebguts.pod \
-       perldebug.pod   \
-       perldelta.pod   \
-       perldiag.pod    \
-       perldsc.pod     \
-       perlembed.pod   \
-       perlfaq.pod     \
-       perlfaq1.pod    \
-       perlfaq2.pod    \
-       perlfaq3.pod    \
-       perlfaq4.pod    \
-       perlfaq5.pod    \
-       perlfaq6.pod    \
-       perlfaq7.pod    \
-       perlfaq8.pod    \
-       perlfaq9.pod    \
-       perlfilter.pod  \
-       perlfork.pod    \
-       perlform.pod    \
-       perlfunc.pod    \
-       perlguts.pod    \
-       perlhack.pod    \
-       perlhist.pod    \
-       perlintern.pod  \
-       perlipc.pod     \
-       perllexwarn.pod \
-       perllocale.pod  \
-       perllol.pod     \
-       perlmod.pod     \
-       perlmodinstall.pod      \
-       perlmodlib.pod  \
-       perlnewmod.pod  \
-       perlnumber.pod  \
-       perlobj.pod     \
-       perlop.pod      \
-       perlopentut.pod \
-       perlpod.pod     \
-       perlport.pod    \
-       perlre.pod      \
-       perlref.pod     \
-       perlreftut.pod  \
-       perlrequick.pod \
-       perlretut.pod   \
-       perlrun.pod     \
-       perlsec.pod     \
-       perlstyle.pod   \
-       perlsub.pod     \
-       perlsyn.pod     \
-       perlthrtut.pod  \
-       perltie.pod     \
-       perltoc.pod     \
-       perltodo.pod    \
-       perltoot.pod    \
-       perltootc.pod   \
-       perltrap.pod    \
-       perlunicode.pod \
-       perlutil.pod    \
-       perlvar.pod     \
-       perlxs.pod      \
-       perlxstut.pod
-
-MAN = \
-       perl.man        \
-       perl5004delta.man       \
-       perl5005delta.man       \
-       perl56delta.man \
-       perlapi.man     \
-       perlapio.man    \
-       perlbook.man    \
-       perlboot.man    \
-       perlbot.man     \
-       perlcall.man    \
-       perlcompile.man \
-       perldata.man    \
-       perldbmfilter.man       \
-       perldebguts.man \
-       perldebug.man   \
-       perldelta.man   \
-       perldiag.man    \
-       perldsc.man     \
-       perlembed.man   \
-       perlfaq.man     \
-       perlfaq1.man    \
-       perlfaq2.man    \
-       perlfaq3.man    \
-       perlfaq4.man    \
-       perlfaq5.man    \
-       perlfaq6.man    \
-       perlfaq7.man    \
-       perlfaq8.man    \
-       perlfaq9.man    \
-       perlfilter.man  \
-       perlfork.man    \
-       perlform.man    \
-       perlfunc.man    \
-       perlguts.man    \
-       perlhack.man    \
-       perlhist.man    \
-       perlintern.man  \
-       perlipc.man     \
-       perllexwarn.man \
-       perllocale.man  \
-       perllol.man     \
-       perlmod.man     \
-       perlmodinstall.man      \
-       perlmodlib.man  \
-       perlnewmod.man  \
-       perlnumber.man  \
-       perlobj.man     \
-       perlop.man      \
-       perlopentut.man \
-       perlpod.man     \
-       perlport.man    \
-       perlre.man      \
-       perlref.man     \
-       perlreftut.man  \
-       perlrequick.man \
-       perlretut.man   \
-       perlrun.man     \
-       perlsec.man     \
-       perlstyle.man   \
-       perlsub.man     \
-       perlsyn.man     \
-       perlthrtut.man  \
-       perltie.man     \
-       perltoc.man     \
-       perltodo.man    \
-       perltoot.man    \
-       perltootc.man   \
-       perltrap.man    \
-       perlunicode.man \
-       perlutil.man    \
-       perlvar.man     \
-       perlxs.man      \
-       perlxstut.man
-
-HTML = \
-       perl.html       \
-       perl5004delta.html      \
-       perl5005delta.html      \
-       perl56delta.html        \
-       perlapi.html    \
-       perlapio.html   \
-       perlbook.html   \
-       perlboot.html   \
-       perlbot.html    \
-       perlcall.html   \
-       perlcompile.html        \
-       perldata.html   \
-       perldbmfilter.html      \
-       perldebguts.html        \
-       perldebug.html  \
-       perldelta.html  \
-       perldiag.html   \
-       perldsc.html    \
-       perlembed.html  \
-       perlfaq.html    \
-       perlfaq1.html   \
-       perlfaq2.html   \
-       perlfaq3.html   \
-       perlfaq4.html   \
-       perlfaq5.html   \
-       perlfaq6.html   \
-       perlfaq7.html   \
-       perlfaq8.html   \
-       perlfaq9.html   \
-       perlfilter.html \
-       perlfork.html   \
-       perlform.html   \
-       perlfunc.html   \
-       perlguts.html   \
-       perlhack.html   \
-       perlhist.html   \
-       perlintern.html \
-       perlipc.html    \
-       perllexwarn.html        \
-       perllocale.html \
-       perllol.html    \
-       perlmod.html    \
-       perlmodinstall.html     \
-       perlmodlib.html \
-       perlnewmod.html \
-       perlnumber.html \
-       perlobj.html    \
-       perlop.html     \
-       perlopentut.html        \
-       perlpod.html    \
-       perlport.html   \
-       perlre.html     \
-       perlref.html    \
-       perlreftut.html \
-       perlrequick.html        \
-       perlretut.html  \
-       perlrun.html    \
-       perlsec.html    \
-       perlstyle.html  \
-       perlsub.html    \
-       perlsyn.html    \
-       perlthrtut.html \
-       perltie.html    \
-       perltodo.html   \
-       perltoot.html   \
-       perltootc.html  \
-       perltrap.html   \
-       perlunicode.html        \
-       perlutil.html   \
-       perlvar.html    \
-       perlxs.html     \
-       perlxstut.html
-
-# not perltoc.html
-
-TEX = \
-       perl.tex        \
-       perl5004delta.tex       \
-       perl5005delta.tex       \
-       perl56delta.tex \
-       perlapi.tex     \
-       perlapio.tex    \
-       perlbook.tex    \
-       perlboot.tex    \
-       perlbot.tex     \
-       perlcall.tex    \
-       perlcompile.tex \
-       perldata.tex    \
-       perldbmfilter.tex       \
-       perldebguts.tex \
-       perldebug.tex   \
-       perldelta.tex   \
-       perldiag.tex    \
-       perldsc.tex     \
-       perlembed.tex   \
-       perlfaq.tex     \
-       perlfaq1.tex    \
-       perlfaq2.tex    \
-       perlfaq3.tex    \
-       perlfaq4.tex    \
-       perlfaq5.tex    \
-       perlfaq6.tex    \
-       perlfaq7.tex    \
-       perlfaq8.tex    \
-       perlfaq9.tex    \
-       perlfilter.tex  \
-       perlfork.tex    \
-       perlform.tex    \
-       perlfunc.tex    \
-       perlguts.tex    \
-       perlhack.tex    \
-       perlhist.tex    \
-       perlintern.tex  \
-       perlipc.tex     \
-       perllexwarn.tex \
-       perllocale.tex  \
-       perllol.tex     \
-       perlmod.tex     \
-       perlmodinstall.tex      \
-       perlmodlib.tex  \
-       perlnewmod.tex  \
-       perlnumber.tex  \
-       perlobj.tex     \
-       perlop.tex      \
-       perlopentut.tex \
-       perlpod.tex     \
-       perlport.tex    \
-       perlre.tex      \
-       perlref.tex     \
-       perlreftut.tex  \
-       perlrequick.tex \
-       perlretut.tex   \
-       perlrun.tex     \
-       perlsec.tex     \
-       perlstyle.tex   \
-       perlsub.tex     \
-       perlsyn.tex     \
-       perlthrtut.tex  \
-       perltie.tex     \
-       perltoc.tex     \
-       perltodo.tex    \
-       perltoot.tex    \
-       perltootc.tex   \
-       perltrap.tex    \
-       perlunicode.tex \
-       perlutil.tex    \
-       perlvar.tex     \
-       perlxs.tex      \
-       perlxstut.tex
-
-man:   pod2man $(MAN)
-
-html:  pod2html $(HTML)
-
-tex:   pod2latex $(TEX)
-
-toc:
-       $(PERL) -I../lib buildtoc >perltoc.pod
-
-.SUFFIXES: .pm .pod
-
-.SUFFIXES: .man
-
-.pm.man:     pod2man
-       $(PERL) -I../lib pod2man $*.pm >$*.man
-
-.pod.man:     pod2man
-       $(PERL) -I../lib pod2man $*.pod >$*.man
-
-.SUFFIXES: .html
-
-.pm.html:    pod2html
-       $(PERL) -I../lib $(POD2HTML) --infile=$*.pm --outfile=$*.html
-
-.pod.html:    pod2html
-       $(PERL) -I../lib $(POD2HTML) --infile=$*.pod --outfile=$*.html
-
-.SUFFIXES: .tex
-
-.pm.tex: pod2latex
-       $(PERL) -I../lib pod2latex $*.pm
-
-.pod.tex: pod2latex
-       $(PERL) -I../lib pod2latex $*.pod
-
-clean:
-       rm -f $(MAN)
-       rm -f $(HTML)
-       rm -f $(TEX)
-       rm -f pod2html-*cache
-       rm -f *.aux *.log *.exe
-
-realclean:     clean
-       rm -f $(CONVERTERS)
-
-distclean:     realclean
-
-check: checkpods
-       @echo "checking..."; \
-       $(PERL) -I../lib checkpods $(POD)
-
-# Dependencies.
-pod2latex:     pod2latex.PL ../lib/Config.pm
-       $(PERL) -I../lib pod2latex.PL
-
-pod2html:      pod2html.PL ../lib/Config.pm
-       $(PERL) -I ../lib pod2html.PL
-
-pod2man:       pod2man.PL ../lib/Config.pm
-       $(PERL) -I ../lib pod2man.PL
-
-pod2text:      pod2text.PL ../lib/Config.pm
-       $(PERL) -I ../lib pod2text.PL
-
-checkpods:     checkpods.PL ../lib/Config.pm
-       $(PERL) -I ../lib checkpods.PL
-
-pod2usage:     pod2usage.PL ../lib/Config.pm
-       $(PERL) -I ../lib pod2usage.PL
-
-podchecker:    podchecker.PL ../lib/Config.pm
-       $(PERL) -I ../lib podchecker.PL
-
-podselect:     podselect.PL ../lib/Config.pm
-       $(PERL) -I ../lib podselect.PL
-
-perlmodlib.pod:        $(PERL) perlmodlib.PL ../mv-if-diff
-       rm -f perlmodlib.tmp
-       $(PERL) -I ../lib perlmodlib.PL
-       sh ../mv-if-diff perlmodlib.tmp perlmodlib.pod
-
-compile: all
-       $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' pod2latex pod2man pod2text checkpods -prog -verbose dcf -log ../compilelog;
-
diff --git a/pod/Makefile.SH b/pod/Makefile.SH
new file mode 100644 (file)
index 0000000..17ba91a
--- /dev/null
@@ -0,0 +1,158 @@
+case $CONFIG in
+'')
+       if test -f config.sh; then TOP=.;
+       elif test -f ../config.sh; then TOP=..;
+       elif test -f ../../config.sh; then TOP=../..;
+       elif test -f ../../../config.sh; then TOP=../../..;
+       elif test -f ../../../../config.sh; then TOP=../../../..;
+       else
+               echo "Can't find config.sh."; exit 1
+       fi
+       . $TOP/config.sh
+       ;;
+esac
+: This forces SH files to create target in same directory as SH file.
+: This is so that make depend always knows where to find SH derivatives.
+case "$0" in
+*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
+esac
+
+if test -d pod; then
+  cd pod || exit 1
+fi
+POD=`echo *.pod`
+MAN=`echo $POD|sed 's/\.pod/\.man/g'`
+HTML=`echo $POD|sed 's/perltoc.pod//'|sed 's/\.pod/\.man/g'`
+TEX=`echo $POD|sed 's/\.pod/\.tex/g'`
+
+echo "Extracting pod/Makefile (with variable substitutions)"
+: This section of the file will have variable substitutions done on it.
+: Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!.
+: Protect any dollar signs and backticks that you do not want interpreted
+: by putting a backslash in front.  You may delete these comments.
+
+$spitshell >Makefile <<!GROK!THIS!
+# pod/Makefile
+# This file is derived from pod/Makefile.SH.  Any changes made here will
+# be lost the next time you run Configure.
+
+POD = $POD
+
+MAN = $MAN
+
+# no perltoc.html
+HTML = $HTML
+
+TEX  = $TEX  
+
+!GROK!THIS!
+
+## In the following dollars and backticks do not need the extra backslash.
+$spitshell >>Makefile <<'!NO!SUBS!'
+
+CONVERTERS = pod2html pod2latex pod2man pod2text checkpods \
+               pod2usage podchecker podselect
+
+HTMLROOT = /   # Change this to fix cross-references in HTML
+POD2HTML = pod2html \
+           --htmlroot=$(HTMLROOT) \
+           --podroot=.. --podpath=pod:lib:ext:vms \
+           --libpods=perlfunc:perlguts:perlvar:perlrun:perlop
+
+PERL = ../miniperl
+REALPERL = ../perl
+
+all: $(CONVERTERS) man
+
+converters: $(CONVERTERS)
+
+regen_pods: perlmodlib.pod toc
+
+buildtoc:      buildtoc.PL
+       $(PERL) -I ../lib buildtoc.PL
+
+man:   pod2man $(MAN)
+
+html:  pod2html $(HTML)
+
+tex:   pod2latex $(TEX)
+
+toc:
+       $(PERL) -I../lib buildtoc
+
+.SUFFIXES: .pm .pod
+
+.SUFFIXES: .man
+
+.pm.man:     pod2man
+       $(PERL) -I../lib pod2man $*.pm >$*.man
+
+.pod.man:     pod2man
+       $(PERL) -I../lib pod2man $*.pod >$*.man
+
+.SUFFIXES: .html
+
+.pm.html:    pod2html
+       $(PERL) -I../lib $(POD2HTML) --infile=$*.pm --outfile=$*.html
+
+.pod.html:    pod2html
+       $(PERL) -I../lib $(POD2HTML) --infile=$*.pod --outfile=$*.html
+
+.SUFFIXES: .tex
+
+.pm.tex: pod2latex
+       $(PERL) -I../lib pod2latex $*.pm
+
+.pod.tex: pod2latex
+       $(PERL) -I../lib pod2latex $*.pod
+
+clean:
+       rm -f $(MAN)
+       rm -f $(HTML)
+       rm -f $(TEX)
+       rm -f pod2html-*cache
+       rm -f *.aux *.log *.exe
+
+realclean:     clean
+       rm -f $(CONVERTERS)
+
+distclean:     realclean
+
+check: checkpods
+       @echo "checking..."; \
+       $(PERL) -I../lib checkpods $(POD)
+
+# Dependencies.
+pod2latex:     pod2latex.PL ../lib/Config.pm
+       $(PERL) -I../lib pod2latex.PL
+
+pod2html:      pod2html.PL ../lib/Config.pm
+       $(PERL) -I ../lib pod2html.PL
+
+pod2man:       pod2man.PL ../lib/Config.pm
+       $(PERL) -I ../lib pod2man.PL
+
+pod2text:      pod2text.PL ../lib/Config.pm
+       $(PERL) -I ../lib pod2text.PL
+
+checkpods:     checkpods.PL ../lib/Config.pm
+       $(PERL) -I ../lib checkpods.PL
+
+pod2usage:     pod2usage.PL ../lib/Config.pm
+       $(PERL) -I ../lib pod2usage.PL
+
+podchecker:    podchecker.PL ../lib/Config.pm
+       $(PERL) -I ../lib podchecker.PL
+
+podselect:     podselect.PL ../lib/Config.pm
+       $(PERL) -I ../lib podselect.PL
+
+perlmodlib.pod:        $(PERL) perlmodlib.PL ../mv-if-diff
+       rm -f perlmodlib.tmp
+       $(PERL) -I ../lib perlmodlib.PL
+       sh ../mv-if-diff perlmodlib.tmp perlmodlib.pod
+
+compile: all
+       $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' pod2latex pod2man pod2text checkpods -prog -verbose dcf -log ../compilelog;
+
+!NO!SUBS!
diff --git a/pod/buildtoc b/pod/buildtoc
deleted file mode 100644 (file)
index 58bfc54..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-use File::Find;
-use Cwd;
-use Text::Wrap;
-
-sub output ($);
-
-@pods = qw(
-          perl perlfaq perlfaq1 perlfaq2 perlfaq3 perlfaq4 perlfaq5
-          perlfaq6 perlfaq7 perlfaq8 perlfaq9 perldelta perldata
-          perlsyn perlop perlre perlrun perlfunc perlvar perlsub
-          perlmod perlmodlib perlmodinstall perlfork perlform perllocale 
-          perlref perlreftut perldsc
-          perllol perlboot perltoot perltootc perlobj perltie perlbot perlipc
-          perldbmfilter perldebug perlnumber perldebguts
-          perldiag perlsec perltrap perlport perlstyle perlpod perlbook
-          perlembed perlapio perlxs perlxstut perlguts perlcall perlcompile
-          perlapi perlintern perlhist
-         );
-
-for (@pods) { s/$/.pod/ }
-
-$/ = '';
-@ARGV = @pods;
-
-($_= <<EOPOD2B) =~ s/^\t//gm && output($_);
-
-       =head1 NAME
-
-       perltoc - perl documentation table of contents
-
-       =head1 DESCRIPTION
-
-       This page provides a brief table of contents for the rest of the Perl
-       documentation set.  It is meant to be scanned quickly or grepped
-       through to locate the proper section you're looking for.
-
-       =head1 BASIC DOCUMENTATION
-
-EOPOD2B
-#' make emacs happy
-
-podset(@pods);
-
-find \&getpods => qw(../lib ../ext);
-
-sub getpods {
-    if (/\.p(od|m)$/) {
-       # Skip .pm files that have corresponding .pod files, and Functions.pm.
-       return if /(.*)\.pm$/ && -f "$1.pod";
-       my $file = $File::Find::name;
-       return if $file eq '../lib/Pod/Functions.pm'; # Used only by pod itself
-
-       die "tut $name" if $file =~ /TUT/;
-       unless (open (F, "< $_\0")) {
-           warn "bogus <$file>: $!";
-           system "ls", "-l", $file;
-       }
-       else {
-           my $line;
-           while ($line = <F>) {
-               if ($line =~ /^=head1\s+NAME\b/) {
-                   push @modpods, $file;
-                   #warn "GOOD $file\n";
-                   return;
-               }
-           }
-           warn "EVIL $file\n";
-       }
-    }
-}
-
-die "no pods" unless @modpods;
-
-for (@modpods) {
-    #($name) = /(\w+)\.p(m|od)$/;
-    $name = path2modname($_);
-    if ($name =~ /^[a-z]/) {
-       push @pragmata, $_;
-    } else {
-       if ($done{$name}++) {
-           # warn "already did $_\n";
-           next;
-       }
-       push @modules, $_;
-       push @modname, $name;
-    }
-}
-
-($_= <<EOPOD2B) =~ s/^\t//gm && output($_);
-
-
-
-       =head1 PRAGMA DOCUMENTATION
-
-EOPOD2B
-
-podset(sort @pragmata);
-
-($_= <<EOPOD2B) =~ s/^\t//gm && output($_);
-
-
-
-       =head1 MODULE DOCUMENTATION
-
-EOPOD2B
-
-podset( @modules[ sort { $modname[$a] cmp $modname[$b] } 0 .. $#modules ] );
-
-($_= <<EOPOD2B) =~ s/^\t//gm;
-
-
-       =head1 AUXILIARY DOCUMENTATION
-
-       Here should be listed all the extra programs' documentation, but they
-       don't all have manual pages yet:
-
-       =over
-
-       =item a2p
-
-       =item s2p
-
-       =item find2perl
-
-       =item h2ph
-
-       =item c2ph
-
-       =item h2xs
-
-       =item xsubpp
-
-       =item pod2man
-
-       =item wrapsuid
-
-       =back
-
-       =head1 AUTHOR
-
-       Larry Wall <F<larry\@wall.org>>, with the help of oodles
-       of other folks.
-
-
-EOPOD2B
-output $_;
-output "\n";                    # flush $LINE
-exit;
-
-sub podset {
-    local @ARGV = @_;
-
-    while(<>) {
-       if (s/^=head1 (NAME)\s*/=head2 /) {
-           $pod = path2modname($ARGV);
-           unhead1();
-           output "\n \n\n=head2 ";
-           $_ = <>;
-           if ( /^\s*$pod\b/ ) {
-               s/$pod\.pm/$pod/;       # '.pm' in NAME !?
-               output $_;
-           } else {
-               s/^/$pod, /;
-               output $_;
-           }
-           next;
-       }
-       if (s/^=head1 (.*)/=item $1/) {
-           unhead2();
-           output "=over\n\n" unless $inhead1;
-           $inhead1 = 1;
-           output $_; nl(); next;
-       }
-       if (s/^=head2 (.*)/=item $1/) {
-           unitem();
-           output "=over\n\n" unless $inhead2;
-           $inhead2 = 1;
-           output $_; nl(); next;
-       }
-       if (s/^=item ([^=].*)/$1/) {
-           next if $pod eq 'perldiag';
-           s/^\s*\*\s*$// && next;
-           s/^\s*\*\s*//;
-           s/\n/ /g;
-           s/\s+$//;
-           next if /^[\d.]+$/;
-           next if $pod eq 'perlmodlib' && /^ftp:/;
-           ##print "=over\n\n" unless $initem;
-           output ", " if $initem;
-           $initem = 1;
-           s/\.$//;
-           s/^-X\b/-I<X>/;
-           output $_; next;
-       }
-       if (s/^=cut\s*\n//) {
-           unhead1();
-           next;
-       }
-    }
-}
-
-sub path2modname {
-    local $_ = shift;
-    s/\.p(m|od)$//;
-    s-.*?/(lib|ext)/--;
-    s-/-::-g;
-    s/(\w+)::\1/$1/;
-    return $_;
-}
-
-sub unhead1 {
-    unhead2();
-    if ($inhead1) {
-       output "\n\n=back\n\n";
-    }
-    $inhead1 = 0;
-}
-
-sub unhead2 {
-    unitem();
-    if ($inhead2) {
-       output "\n\n=back\n\n";
-    }
-    $inhead2 = 0;
-}
-
-sub unitem {
-    if ($initem) {
-       output "\n\n";
-       ##print "\n\n=back\n\n";
-    }
-    $initem = 0;
-}
-
-sub nl {
-    output "\n";
-}
-
-my $NEWLINE;   # how many newlines have we seen recently
-my $LINE;      # what remains to be printed
-
-sub output ($) {
-    for (split /(\n)/, shift) {
-       if ($_ eq "\n") {
-           if ($LINE) {
-               print wrap('', '', $LINE);
-               $LINE = '';
-           }
-           if ($NEWLINE < 2) {
-               print;
-               $NEWLINE++;
-           }
-       }
-       elsif (/\S/ && length) {
-           $LINE .= $_;
-           $NEWLINE = 0;
-       }
-    }
-}
diff --git a/pod/buildtoc.PL b/pod/buildtoc.PL
new file mode 100644 (file)
index 0000000..8e07ce8
--- /dev/null
@@ -0,0 +1,467 @@
+#!/usr/local/bin/perl
+
+use Config;
+use File::Basename qw(&basename &dirname);
+use Cwd;
+
+# List explicitly here the variables you want Configure to
+# generate.  Metaconfig only looks for shell variables, so you
+# have to mention them as if they were shell variables, not
+# %Config entries.  Thus you write
+#  $startperl
+# to ensure Configure will look for $Config{startperl}.
+
+# This forces PL files to create target in same directory as PL file.
+# This is so that make depend always knows where to find PL derivatives.
+$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"
+
+open OUT,">$file" or die "Can't create $file: $!";
+
+print "Extracting $file (with variable substitutions)\n";
+
+# In this section, perl variables will be expanded during extraction.
+# You can use $Config{...} to use Configure variables.
+
+print OUT <<"!GROK!THIS!";
+$Config{'startperl'}
+    eval 'exec perl -S \$0 "\$@"'
+        if 0;
+!GROK!THIS!
+
+# In the following, perl variables are not expanded during extraction.
+
+print OUT <<'!NO!SUBS!';
+
+#
+# buildtoc
+#
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+# This file is autogenerated by buildtoc.PL.
+# Edit that file and run it to effect changes.
+#
+# Builds perltoc.pod and sanity checks the list of pods against all
+# of the MANIFEST, perl.pod, and ourselves.
+#
+
+use File::Find;
+use Cwd;
+use Text::Wrap;
+
+@PODS = glob("*.pod");
+
+sub output ($);
+
+if (-d "pod") {
+  die "$0: failed to chdir('pod'): $!\n" unless chdir("pod");
+}
+
+@pods = qw(
+    perl                
+    perlfaq             
+    perltoc             
+    perlbook            
+
+    perlsyn            
+    perldata            
+    perlop              
+    perlreftut          
+    perldsc             
+    perllol             
+    perlrequick         
+    perlretut           
+
+    perllexwarn         
+    perldebug           
+
+    perlrun             
+    perlfunc            
+    perlopentut         
+    perlvar             
+    perlsub             
+    perlmod             
+    perlpod             
+
+    perlstyle           
+    perlmodlib          
+    perlmodinstall      
+    perlnewmod          
+    perltrap            
+    perlport            
+    perlsec             
+
+    perlref             
+    perlre              
+    perlform            
+    perllocale          
+    perlunicode         
+
+    perlboot            
+    perltoot            
+    perltootc           
+    perlobj             
+    perlbot             
+    perltie             
+
+    perlipc             
+    perlnumber          
+    perlfork            
+    perlthrtut          
+
+    perldiag            
+    perlfaq1            
+    perlfaq2            
+    perlfaq3            
+    perlfaq4            
+    perlfaq5            
+    perlfaq6            
+    perlfaq7            
+    perlfaq8            
+    perlfaq9            
+
+    perlcompile        
+
+    perlembed          
+    perldebguts         
+    perlxstut           
+    perlxs              
+    perlguts            
+    perlcall            
+    perlutil            
+    perlfilter          
+    perldbmfilter       
+    perlapi             
+    perlintern          
+    perlapio            
+    perltodo            
+    perlhack            
+
+    perlhist           
+    perldelta           
+    perl56delta         
+    perl5005delta       
+    perl5004delta       
+
+    perlamiga          
+    perlcygwin          
+    perldos             
+    perlhpux            
+    perlmachten         
+    perlos2             
+    perlos390           
+    perlvms             
+    perlwin32           
+         );
+
+@ARCHPODS = qw(
+    perlamiga          
+    perlcygwin          
+    perldos             
+    perlhpux            
+    perlmachten         
+    perlos2             
+    perlos390           
+    perlvms             
+    perlwin32           
+          );
+for (@ARCHPODS) { s/$/.pod/ }
+@ARCHPODS{@ARCHPODS} = ();
+
+for (@pods) { s/$/.pod/ }
+@pods{@pods} = ();
+@PODS{@PODS} = ();
+
+open(MANI, "../MANIFEST") || die "$0: opening ../MANIFEST failed: $!";
+while (<MANI>) {
+  if (m!^pod/([^.]+\.pod)\s+!i) {
+     push @MANIPODS, $1;
+  }
+}
+close(MANI);
+@MANIPODS{@MANIPODS} = ();
+
+open(PERLPOD, "perl.pod") || die "$0: opening perl.pod failed: $!\n";
+while (<PERLPOD>) {
+  if (/^For ease of access, /../^\(If you're intending /) {
+       if (/^\s+(perl\w*)\s+\w/) {
+               push @PERLPODS, "$1.pod";
+       }
+  }
+}
+close(PERLPOD);
+die "$0: could not find the pod listing of perl.pod\n"
+  unless @PERLPODS;
+@PERLPODS{@PERLPODS} = ();
+
+# Cross-check against ourselves
+# Cross-check against the MANIFEST
+# Cross-check against the perl.pod
+
+foreach my $i (sort keys %PODS) {
+  warn "$0: $i exists but is unknown by buildtoc\n"
+       unless exists $pods{$i};
+  warn "$0: $i exists but is unknown by ../MANIFEST\n"
+       if !exists $MANIPODS{$i} && !exists $ARCHPODS{$i};
+  warn "$0: $i exists but is unknown by perl.pod\n"
+       unless exists $PERLPODS{$i};
+}
+foreach my $i (sort keys %pods) {
+  warn "$0: $i is known by buildtoc but does not exist\n"
+       unless exists $PODS{$i};
+}
+foreach my $i (sort keys %MANIPODS) {
+  warn "$0: $i is known by ../MANIFEST but does not exist\n"
+       unless exists $PODS{$i};
+}
+foreach my $i (sort keys %PERLPODS) {
+  warn "$0: $i is known by perl.pod but does not exist\n"
+       unless exists $PODS{$i};
+}
+
+# We are ready to rock.
+open(OUT, ">perltoc.pod") || die "$0: creating perltoc.pod failed: $!";
+
+$/ = '';
+@ARGV = @pods;
+
+($_= <<EOPOD2B) =~ s/^\t//gm && output($_);
+
+       =head1 NAME
+
+       perltoc - perl documentation table of contents
+
+       =head1 DESCRIPTION
+
+       This page provides a brief table of contents for the rest of the Perl
+       documentation set.  It is meant to be scanned quickly or grepped
+       through to locate the proper section you're looking for.
+
+       =head1 BASIC DOCUMENTATION
+
+EOPOD2B
+#' make emacs happy
+
+podset(@pods);
+
+find \&getpods => qw(../lib ../ext);
+
+sub getpods {
+    if (/\.p(od|m)$/) {
+       # Skip .pm files that have corresponding .pod files, and Functions.pm.
+       return if /(.*)\.pm$/ && -f "$1.pod";
+       my $file = $File::Find::name;
+       return if $file eq '../lib/Pod/Functions.pm'; # Used only by pod itself
+
+       die "tut $name" if $file =~ /TUT/;
+       unless (open (F, "< $_\0")) {
+           warn "bogus <$file>: $!";
+           system "ls", "-l", $file;
+       }
+       else {
+           my $line;
+           while ($line = <F>) {
+               if ($line =~ /^=head1\s+NAME\b/) {
+                   push @modpods, $file;
+                   #warn "GOOD $file\n";
+                   return;
+               }
+           }
+           warn "$0: $file: cannot find =head1 NAME\n";
+       }
+    }
+}
+
+die "no pods" unless @modpods;
+
+for (@modpods) {
+    #($name) = /(\w+)\.p(m|od)$/;
+    $name = path2modname($_);
+    if ($name =~ /^[a-z]/) {
+       push @pragmata, $_;
+    } else {
+       if ($done{$name}++) {
+           # warn "already did $_\n";
+           next;
+       }
+       push @modules, $_;
+       push @modname, $name;
+    }
+}
+
+($_= <<EOPOD2B) =~ s/^\t//gm && output($_);
+
+
+
+       =head1 PRAGMA DOCUMENTATION
+
+EOPOD2B
+
+podset(sort @pragmata);
+
+($_= <<EOPOD2B) =~ s/^\t//gm && output($_);
+
+
+
+       =head1 MODULE DOCUMENTATION
+
+EOPOD2B
+
+podset( @modules[ sort { $modname[$a] cmp $modname[$b] } 0 .. $#modules ] );
+
+($_= <<EOPOD2B) =~ s/^\t//gm;
+
+
+       =head1 AUXILIARY DOCUMENTATION
+
+       Here should be listed all the extra programs' documentation, but they
+       don't all have manual pages yet:
+
+       =over
+
+       =item a2p
+
+       =item s2p
+
+       =item find2perl
+
+       =item h2ph
+
+       =item c2ph
+
+       =item h2xs
+
+       =item xsubpp
+
+       =item pod2man
+
+       =item wrapsuid
+
+       =back
+
+       =head1 AUTHOR
+
+       Larry Wall <F<larry\@wall.org>>, with the help of oodles
+       of other folks.
+
+
+EOPOD2B
+output $_;
+output "\n";                    # flush $LINE
+exit;
+
+sub podset {
+    local @ARGV = @_;
+
+    while(<>) {
+       if (s/^=head1 (NAME)\s*/=head2 /) {
+           $pod = path2modname($ARGV);
+           unhead1();
+           output "\n \n\n=head2 ";
+           $_ = <>;
+           if ( /^\s*$pod\b/ ) {
+               s/$pod\.pm/$pod/;       # '.pm' in NAME !?
+               output $_;
+           } else {
+               s/^/$pod, /;
+               output $_;
+           }
+           next;
+       }
+       if (s/^=head1 (.*)/=item $1/) {
+           unhead2();
+           output "=over\n\n" unless $inhead1;
+           $inhead1 = 1;
+           output $_; nl(); next;
+       }
+       if (s/^=head2 (.*)/=item $1/) {
+           unitem();
+           output "=over\n\n" unless $inhead2;
+           $inhead2 = 1;
+           output $_; nl(); next;
+       }
+       if (s/^=item ([^=].*)/$1/) {
+           next if $pod eq 'perldiag';
+           s/^\s*\*\s*$// && next;
+           s/^\s*\*\s*//;
+           s/\n/ /g;
+           s/\s+$//;
+           next if /^[\d.]+$/;
+           next if $pod eq 'perlmodlib' && /^ftp:/;
+           ##print "=over\n\n" unless $initem;
+           output ", " if $initem;
+           $initem = 1;
+           s/\.$//;
+           s/^-X\b/-I<X>/;
+           output $_; next;
+       }
+       if (s/^=cut\s*\n//) {
+           unhead1();
+           next;
+       }
+    }
+}
+
+sub path2modname {
+    local $_ = shift;
+    s/\.p(m|od)$//;
+    s-.*?/(lib|ext)/--;
+    s-/-::-g;
+    s/(\w+)::\1/$1/;
+    return $_;
+}
+
+sub unhead1 {
+    unhead2();
+    if ($inhead1) {
+       output "\n\n=back\n\n";
+    }
+    $inhead1 = 0;
+}
+
+sub unhead2 {
+    unitem();
+    if ($inhead2) {
+       output "\n\n=back\n\n";
+    }
+    $inhead2 = 0;
+}
+
+sub unitem {
+    if ($initem) {
+       output "\n\n";
+       ##print "\n\n=back\n\n";
+    }
+    $initem = 0;
+}
+
+sub nl {
+    output "\n";
+}
+
+my $NEWLINE;   # how many newlines have we seen recently
+my $LINE;      # what remains to be printed
+
+sub output ($) {
+    for (split /(\n)/, shift) {
+       if ($_ eq "\n") {
+           if ($LINE) {
+               print OUT wrap('', '', $LINE);
+               $LINE = '';
+           }
+           if ($NEWLINE < 2) {
+               print OUT;
+               $NEWLINE++;
+           }
+       }
+       elsif (/\S/ && length) {
+           $LINE .= $_;
+           $NEWLINE = 0;
+       }
+    }
+}
+
+!NO!SUBS!
+
index 49fdbf2..ce0d1b4 100644 (file)
@@ -12,76 +12,92 @@ B<perl>     S<[ B<-sTuU> ]> S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]>
     S<[ B<-i>[I<extension>] ]> S<[ B<-e> I<'command'> ] 
     [ B<--> ] [ I<programfile> ] [ I<argument> ]...>
 
-For ease of access, the Perl manual has been split up into several
-sections:
+For ease of access, the Perl manual has been split up into several sections:
 
     perl               Perl overview (this section)
-    perldelta          Perl changes since previous version
-    perl5005delta      Perl changes in version 5.005
-    perl5004delta      Perl changes in version 5.004
     perlfaq            Perl frequently asked questions
     perltoc            Perl documentation table of contents
+    perlbook           Perl book information
 
-    perldata           Perl data structures
     perlsyn            Perl syntax
+    perldata           Perl data structures
     perlop             Perl operators and precedence
-    perlre             Perl regular expressions
+    perlreftut         Perl references short introduction
+    perldsc            Perl data structures intro
+    perllol            Perl data structures: arrays of arrays
+    perlrequick                Perl regular expressions quick start
+    perlretut          Perl regular expressions tutorial
+
+    perllexwarn                Perl warnings and their control
+    perldebug          Perl debugging
+
     perlrun            Perl execution and options
     perlfunc           Perl builtin functions
     perlopentut                Perl open() tutorial
     perlvar            Perl predefined variables
     perlsub            Perl subroutines
     perlmod            Perl modules: how they work
+    perlpod            Perl plain old documentation
+
+    perlstyle          Perl style guide
     perlmodlib         Perl modules: how to write and use
     perlmodinstall     Perl modules: how to install from CPAN
-    perlnewpod         Perl modules: preparing a new module for distribution
+    perlnewmod         Perl modules: preparing a new module for distribution
+    perltrap           Perl traps for the unwary
+    perlport           Perl portability guide
+    perlsec            Perl security
 
+    perlref            Perl references, the rest of the story
+    perlre             Perl regular expressions, the rest of the story
     perlform           Perl formats
-    perlunicode                Perl unicode support
     perllocale         Perl locale support
+    perlunicode                Perl unicode support
 
-    perlreftut         Perl references short introduction
-    perlref            Perl references, the rest of the story
-    perldsc            Perl data structures intro
-    perllol            Perl data structures: arrays of arrays
     perlboot           Perl OO tutorial for beginners
     perltoot           Perl OO tutorial, part 1
     perltootc          Perl OO tutorial, part 2
     perlobj            Perl objects
-    perltie            Perl objects hidden behind simple variables
     perlbot            Perl OO tricks and examples
+    perltie            Perl objects hidden behind simple variables
+
     perlipc            Perl interprocess communication
+    perlnumber         Perl number semantics
     perlfork           Perl fork() information
     perlthrtut         Perl threads tutorial
-    perllexwarn                Perl warnings and their control
-    perlfilter         Perl source filters
-    perldbmfilter      Perl DBM filters
 
-    perlcompile                Perl compiler suite intro
-    perldebug          Perl debugging
     perldiag           Perl diagnostic messages
-    perlnumber         Perl number semantics
-    perlsec            Perl security
-    perltrap           Perl traps for the unwary
-    perlport           Perl portability guide
-    perlstyle          Perl style guide
+    perlfaq1           General Questions About Perl
+    perlfaq2           Obtaining and Learning about Perl
+    perlfaq3           Programming Tools
+    perlfaq4           Data Manipulation
+    perlfaq5           Files and Formats
+    perlfaq6           Regexes
+    perlfaq7           Perl Language Issues
+    perlfaq8           System Interaction
+    perlfaq9           Networking
 
-    perlpod            Perl plain old documentation
-    perlbook           Perl book information
+    perlcompile                Perl compiler suite intro
 
     perlembed          Perl ways to embed perl in your C or C++ application
-    perlapio           Perl internal IO abstraction interface
     perldebguts                Perl debugging guts and tips
-    perlxs             Perl XS application programming interface
     perlxstut          Perl XS tutorial
+    perlxs             Perl XS application programming interface
     perlguts           Perl internal functions for those doing extensions
     perlcall           Perl calling conventions from C
+    perlutil           utilities packaged with the Perl distribution
+    perlfilter         Perl source filters
+    perldbmfilter      Perl DBM filters
     perlapi            Perl API listing (autogenerated)
     perlintern         Perl internal functions (autogenerated)
-
+    perlapio           Perl internal IO abstraction interface
     perltodo           Perl things to do
     perlhack           Perl hackers guide
+
     perlhist           Perl history records
+    perldelta          Perl changes since previous version
+    perl56delta                Perl changes in version 5.6
+    perl5005delta      Perl changes in version 5.005
+    perl5004delta      Perl changes in version 5.004
 
     perlamiga          Perl notes for Amiga
     perlcygwin         Perl notes for Cygwin
index 78a6318..bf59669 100644 (file)
@@ -2495,13 +2495,13 @@ first to get the correct constant definitions.  If CMD is C<IPC_STAT>,
 then ARG must be a variable which will hold the returned C<msqid_ds>
 structure.  Returns like C<ioctl>: the undefined value for error,
 C<"0 but true"> for zero, or the actual return value otherwise.  See also
-C<IPC::SysV> and C<IPC::Semaphore> documentation.
+L<perlipc/"SysV IPC">, C<IPC::SysV>, and C<IPC::Semaphore> documentation.
 
 =item msgget KEY,FLAGS
 
 Calls the System V IPC function msgget(2).  Returns the message queue
-id, or the undefined value if there is an error.  See also C<IPC::SysV>
-and C<IPC::Msg> documentation.
+id, or the undefined value if there is an error.  See also
+L<perlipc/"SysV IPC"> and C<IPC::SysV> and C<IPC::Msg> documentation.
 
 =item msgrcv ID,VAR,SIZE,TYPE,FLAGS
 
@@ -2511,7 +2511,8 @@ SIZE.  Note that when a message is received, the message type as a
 native long integer will be the first thing in VAR, followed by the
 actual message.  This packing may be opened with C<unpack("l! a*")>.
 Taints the variable.  Returns true if successful, or false if there is
-an error.  See also C<IPC::SysV> and C<IPC::SysV::Msg> documentation.
+an error.  See also L<perlipc/"SysV IPC">, C<IPC::SysV>, and
+C<IPC::SysV::Msg> documentation.
 
 =item msgsnd ID,MSG,FLAGS
 
@@ -3943,13 +3944,15 @@ semid_ds structure or semaphore value array.  Returns like C<ioctl>:
 the undefined value for error, "C<0 but true>" for zero, or the actual
 return value otherwise.  The ARG must consist of a vector of native
 short integers, which may be created with C<pack("s!",(0)x$nsem)>.
-See also C<IPC::SysV> and C<IPC::Semaphore> documentation.
+See also L<perlipc/"SysV IPC">, C<IPC::SysV>, C<IPC::Semaphore>
+documentation.
 
 =item semget KEY,NSEMS,FLAGS
 
 Calls the System V IPC function semget.  Returns the semaphore id, or
-the undefined value if there is an error.  See also C<IPC::SysV> and
-C<IPC::SysV::Semaphore> documentation.
+the undefined value if there is an error.  See also
+L<perlipc/"SysV IPC">, C<IPC::SysV>, C<IPC::SysV::Semaphore>
+documentation.
 
 =item semop KEY,OPSTRING
 
@@ -3964,8 +3967,9 @@ following code waits on semaphore $semnum of semaphore id $semid:
     $semop = pack("sss", $semnum, -1, 0);
     die "Semaphore trouble: $!\n" unless semop($semid, $semop);
 
-To signal the semaphore, replace C<-1> with C<1>.  See also C<IPC::SysV>
-and C<IPC::SysV::Semaphore> documentation.
+To signal the semaphore, replace C<-1> with C<1>.  See also
+L<perlipc/"SysV IPC">, C<IPC::SysV>, and C<IPC::SysV::Semaphore>
+documentation.
 
 =item send SOCKET,MSG,FLAGS,TO
 
@@ -4025,13 +4029,13 @@ first to get the correct constant definitions.  If CMD is C<IPC_STAT>,
 then ARG must be a variable which will hold the returned C<shmid_ds>
 structure.  Returns like ioctl: the undefined value for error, "C<0> but
 true" for zero, or the actual return value otherwise.
-See also C<IPC::SysV> documentation.
+See also L<perlipc/"SysV IPC"> and C<IPC::SysV> documentation.
 
 =item shmget KEY,SIZE,FLAGS
 
 Calls the System V IPC function shmget.  Returns the shared memory
 segment id, or the undefined value if there is an error.
-See also C<IPC::SysV> documentation.
+See also L<perlipc/"SysV IPC"> and C<IPC::SysV> documentation.
 
 =item shmread ID,VAR,POS,SIZE
 
@@ -4043,8 +4047,8 @@ detaching from it.  When reading, VAR must be a variable that will
 hold the data read.  When writing, if STRING is too long, only SIZE
 bytes are used; if STRING is too short, nulls are written to fill out
 SIZE bytes.  Return true if successful, or false if there is an error.
-shmread() taints the variable. See also C<IPC::SysV> documentation and
-the C<IPC::Shareable> module from CPAN.
+shmread() taints the variable. See also L<perlipc/"SysV IPC">,
+C<IPC::SysV> documentation, and the C<IPC::Shareable> module from CPAN.
 
 =item shutdown SOCKET,HOW
 
index 5768081..2e23fc9 100644 (file)
@@ -301,55 +301,39 @@ authors
 
 =back
 
-=head2 perlfaq1 - General Questions About Perl ($Revision: 1.23 $, $Date:
-1999/05/23 16:08:30 $)
+=head2 perltoc - perl documentation table of contents
 
 =over
 
 =item DESCRIPTION
 
-=over
-
-=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 BASIC DOCUMENTATION
 
-=item How does Perl compare with other languages like Java, Python, REXX,
-Scheme, or Tcl?
+=over
 
-=item Can I do [task] in Perl?
+=item perl - Practical Extraction and Report Language
 
-=item When shouldn't I program in Perl?
+SYNOPSIS, DESCRIPTION, AVAILABILITY, ENVIRONMENT, AUTHOR, FILES, SEE ALSO,
+DIAGNOSTICS, BUGS, NOTES
 
-=item What's the difference between "perl" and "Perl"?
+=item perlfaq - frequently asked questions about Perl ($Date: 1999/05/23
+20:38:02 $)
 
-=item Is it a Perl program or a Perl script?
+DESCRIPTION
 
-=item What is a JAPH?
+=back
 
-=item Where can I get a list of Larry Wall witticisms?
+=back
 
-=item How can I convince my sysadmin/supervisor/employees to use version
-(5/5.005/Perl instead of some other language)?
+=head2 perlbook - Perl book information
 
-=back
+=over
 
-=item AUTHOR AND COPYRIGHT
+=item DESCRIPTION
 
 =back
 
-=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.32 $,
-$Date: 1999/10/14 18:46:09 $)
+=head2 perlsyn - Perl syntax
 
 =over
 
@@ -357,521 +341,2728 @@ $Date: 1999/10/14 18:46:09 $)
 
 =over
 
-=item What machines support Perl?  Where do I get it?
+=item Declarations
 
-=item How can I get a binary version of Perl?
+=item Simple statements
 
-=item I don't have a C compiler on my system.  How can I compile perl?
+=item Compound statements
 
-=item I copied the Perl binary from one machine to another, but scripts
-don't work.
+=item Loop Control
 
-=item I grabbed the sources and tried to compile but gdbm/dynamic
-loading/malloc/linking/... failed.  How do I make it work?
+=item For Loops
 
-=item What modules and extensions are available for Perl?  What is CPAN? 
-What does CPAN/src/... mean?
+=item Foreach Loops
 
-=item Is there an ISO or ANSI certified version of Perl?
+=item Basic BLOCKs and Switch Statements
 
-=item Where can I get information on Perl?
+=item Goto
 
-=item What are the Perl newsgroups on Usenet?  Where do I post questions?
+=item PODs: Embedded Documentation
 
-=item Where should I post source code?
+=item Plain Old Comments (Not!)
 
-=item Perl Books
+=back
 
-References, Tutorials, Task-Oriented, Special Topics
+=back
 
-=item Perl in Magazines
+=head2 perldata - Perl data types
 
-=item Perl on the Net: FTP and WWW Access
+=over
 
-=item What mailing lists are there for Perl?
+=item DESCRIPTION
 
-=item Archives of comp.lang.perl.misc
+=over
 
-=item Where can I buy a commercial version of Perl?
+=item Variable names
 
-=item Where do I send bug reports?
+=item Context
 
-=item What is perl.com? Perl Mongers? pm.org? perl.org?
+=item Scalar values
+
+=item Scalar value constructors
+
+=item List value constructors
+
+=item Slices
+
+=item Typeglobs and Filehandles
 
 =back
 
-=item AUTHOR AND COPYRIGHT
+=item SEE ALSO
 
 =back
 
-=head2 perlfaq3 - Programming Tools ($Revision: 1.38 $, $Date: 1999/05/23
-16:08:30 $)
+=head2 perlop - Perl operators and precedence
 
 =over
 
+=item SYNOPSIS
+
 =item DESCRIPTION
 
 =over
 
-=item How do I do (anything)?
+=item Terms and List Operators (Leftward)
 
-=item How can I use Perl interactively?
+=item The Arrow Operator
 
-=item Is there a Perl shell?
+=item Auto-increment and Auto-decrement
 
-=item How do I debug my Perl programs?
+=item Exponentiation
 
-=item How do I profile my Perl programs?
+=item Symbolic Unary Operators
 
-=item How do I cross-reference my Perl programs?
+=item Binding Operators
 
-=item Is there a pretty-printer (formatter) for Perl?
+=item Multiplicative Operators
 
-=item Is there a ctags for Perl?
+=item Additive Operators
 
-=item Is there an IDE or Windows Perl Editor?
+=item Shift Operators
 
-=item Where can I get Perl macros for vi?
+=item Named Unary Operators
 
-=item Where can I get perl-mode for emacs?
+=item Relational Operators
 
-=item How can I use curses with Perl?
+=item Equality Operators
 
-=item How can I use X or Tk with Perl?
+=item Bitwise And
 
-=item How can I generate simple menus without using CGI or Tk?
+=item Bitwise Or and Exclusive Or
 
-=item What is undump?
+=item C-style Logical And
 
-=item How can I make my Perl program run faster?
+=item C-style Logical Or
 
-=item How can I make my Perl program take less memory?
+=item Range Operators
 
-=item Is it unsafe to return a pointer to local data?
+=item Conditional Operator
 
-=item How can I free an array or hash so my program shrinks?
+=item Assignment Operators
 
-=item How can I make my CGI script more efficient?
+=item Comma Operator
 
-=item How can I hide the source for my Perl program?
+=item List Operators (Rightward)
 
-=item How can I compile my Perl program into byte code or C?
+=item Logical Not
 
-=item How can I compile Perl into Java?
+=item Logical And
 
-=item How can I get C<#!perl> to work on [MS-DOS,NT,...]?
+=item Logical or and Exclusive Or
 
-=item Can I write useful Perl programs on the command line?
+=item C Operators Missing From Perl
 
-=item Why don't Perl one-liners work on my DOS/Mac/VMS system?
+unary &, unary *, (TYPE)
 
-=item Where can I learn about CGI or Web programming in Perl?
+=item Quote and Quote-like Operators
 
-=item Where can I learn about object-oriented Perl programming?
+=item Regexp Quote-Like Operators
 
-=item Where can I learn about linking C with Perl? [h2xs, xsubpp]
+?PATTERN?, m/PATTERN/cgimosx, /PATTERN/cgimosx, q/STRING/, C<'STRING'>,
+qq/STRING/, "STRING", qr/STRING/imosx, qx/STRING/, `STRING`, qw/STRING/,
+s/PATTERN/REPLACEMENT/egimosx, tr/SEARCHLIST/REPLACEMENTLIST/cds,
+y/SEARCHLIST/REPLACEMENTLIST/cds
 
-=item I've read perlembed, perlguts, etc., but I can't embed perl in
-my C program, what am I doing wrong?
+=item Gory details of parsing quoted constructs
 
-=item When I tried to run my script, I got this message. What does it
-mean?
+Finding the end, Removal of backslashes before delimiters, Interpolation,
+C<<<'EOF'>, C<m''>, C<s'''>, C<tr///>, C<y///>, C<''>, C<q//>, C<"">,
+C<``>, C<qq//>, C<qx//>, C<< <file*glob> >>, C<?RE?>, C</RE/>, C<m/RE/>,
+C<s/RE/foo/>,, Interpolation of regular expressions, Optimization of
+regular expressions
 
-=item What's MakeMaker?
+=item I/O Operators
 
-=back
+=item Constant Folding
 
-=item AUTHOR AND COPYRIGHT
+=item Bitwise String Operators
+
+=item Integer Arithmetic
+
+=item Floating-point Arithmetic
+
+=item Bigger Numbers
 
 =back
 
-=head2 perlfaq4 - Data Manipulation ($Revision: 1.49 $, $Date: 1999/05/23
-20:37:49 $)
+=back
+
+=head2 perlreftut - Mark's very short tutorial about references
 
 =over
 
 =item DESCRIPTION
 
-=item Data: Numbers
+=item Who Needs Complicated Data Structures?
+
+=item The Solution
+
+=item Syntax
 
 =over
 
-=item Why am I getting long decimals (eg, 19.9499999999999) instead of the
-numbers I should be getting (eg, 19.95)?
+=item Making References
 
-=item Why isn't my octal data interpreted correctly?
+=item Using References
 
-=item Does Perl have a round() function?  What about ceil() and floor()? 
-Trig functions?
+=back
 
-=item How do I convert bits into ints?
+=item An Example
 
-=item Why doesn't & work the way I want it to?
+=item Arrow Rule
 
-=item How do I multiply matrices?
+=item Solution
 
-=item How do I perform an operation on a series of integers?
+=item The Rest
 
-=item How can I output Roman numerals?
+=item Summary
 
-=item Why aren't my random numbers random?
+=item Credits
+
+=over
+
+=item Distribution Conditions
 
 =back
 
-=item Data: Dates
+=back
+
+=head2 perldsc - Perl Data Structures Cookbook
 
 =over
 
-=item How do I find the week-of-the-year/day-of-the-year?
+=item DESCRIPTION
 
-=item How do I find the current century or millennium?
+arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes,
+more elaborate constructs
 
-=item How can I compare two dates and find the difference?
+=item REFERENCES
 
-=item How can I take a string and turn it into epoch seconds?
+=item COMMON MISTAKES
 
-=item How can I find the Julian Day?
+=item CAVEAT ON PRECEDENCE
 
-=item How do I find yesterday's date?
+=item WHY YOU SHOULD ALWAYS C<use strict>
 
-=item Does Perl have a Year 2000 problem?  Is Perl Y2K compliant?
+=item DEBUGGING
 
-=back
+=item CODE EXAMPLES
 
-=item Data: Strings
+=item ARRAYS OF ARRAYS
 
 =over
 
-=item How do I validate input?
+=item Declaration of a ARRAY OF ARRAYS
 
-=item How do I unescape a string?
+=item Generation of a ARRAY OF ARRAYS
 
-=item How do I remove consecutive pairs of characters?
+=item Access and Printing of a ARRAY OF ARRAYS
 
-=item How do I expand function calls in a string?
+=back
 
-=item How do I find matching/nesting anything?
+=item HASHES OF ARRAYS
 
-=item How do I reverse a string?
+=over
 
-=item How do I expand tabs in a string?
+=item Declaration of a HASH OF ARRAYS
 
-=item How do I reformat a paragraph?
+=item Generation of a HASH OF ARRAYS
 
-=item How can I access/change the first N letters of a string?
+=item Access and Printing of a HASH OF ARRAYS
 
-=item How do I change the Nth occurrence of something?
+=back
 
-=item How can I count the number of occurrences of a substring within a
-string?
+=item ARRAYS OF HASHES
 
-=item How do I capitalize all the words on one line?
+=over
 
-=item How can I split a [character] delimited string except when inside
-[character]? (Comma-separated files)
+=item Declaration of a ARRAY OF HASHES
 
-=item How do I strip blank space from the beginning/end of a string?
+=item Generation of a ARRAY OF HASHES
 
-=item How do I pad a string with blanks or pad a number with zeroes?
+=item Access and Printing of a ARRAY OF HASHES
 
-=item How do I extract selected columns from a string?
+=back
 
-=item How do I find the soundex value of a string?
+=item HASHES OF HASHES
 
-=item How can I expand variables in text strings?
+=over
 
-=item What's wrong with always quoting "$vars"?
+=item Declaration of a HASH OF HASHES
 
-=item Why don't my <<HERE documents work?
+=item Generation of a HASH OF HASHES
 
-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
+=item Access and Printing of a HASH OF HASHES
 
 =back
 
-=item Data: Arrays
+=item MORE ELABORATE RECORDS
 
 =over
 
-=item What is the difference between a list and an array?
+=item Declaration of MORE ELABORATE RECORDS
 
-=item What is the difference between $array[1] and @array[1]?
+=item Declaration of a HASH OF COMPLEX RECORDS
 
-=item How can I remove duplicate elements from a list or array?
+=item Generation of a HASH OF COMPLEX RECORDS
 
-a) If @in is sorted, and you want @out to be sorted: (this assumes all true
-values in the array), b) If you don't know whether @in is sorted:, c) Like
-(b), but @in contains only small integers:, d) A way to do (b) without any
-loops or greps:, e) Like (d), but @in contains only small positive
-integers:
+=back
 
-=item How can I tell whether a list or array contains a certain element?
+=item Database Ties
 
-=item How do I compute the difference of two arrays?  How do I compute the
-intersection of two arrays?
+=item SEE ALSO
 
-=item How do I test whether two arrays or hashes are equal?
+=item AUTHOR
 
-=item How do I find the first array element for which a condition is true?
+=back
 
-=item How do I handle linked lists?
+=head2 perllol - Manipulating Arrays of Arrays in Perl
 
-=item How do I handle circular lists?
+=over
 
-=item How do I shuffle an array randomly?
+=item DESCRIPTION
 
-=item How do I process/modify each element of an array?
+=item Declaration and Access of Arrays of Arrays
 
-=item How do I select a random element from an array?
+=item Growing Your Own
 
-=item How do I permute N elements of a list?
+=item Access and Printing
 
-=item How do I sort an array by (anything)?
+=item Slices
 
-=item How do I manipulate arrays of bits?
+=item SEE ALSO
 
-=item Why does defined() return true on empty arrays and hashes?
+=item AUTHOR
 
 =back
 
-=item Data: Hashes (Associative Arrays)
+=head2 perlrequick - Perl regular expressions quick start
 
 =over
 
-=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 DESCRIPTION
 
-=item How do I look up a hash element by value?
+=item The Guide
 
-=item How can I know how many entries are in a hash?
+=over
 
-=item How do I sort a hash (optionally by value instead of key)?
+=item Simple word matching
 
-=item How can I always keep my hash sorted?
+=item Using character classes
 
-=item What's the difference between "delete" and "undef" with hashes?
+\d is a digit and represents [0-9], \s is a whitespace character and
+represents [\ \t\r\n\f], \w is a word character (alphanumeric or _) and
+represents [0-9a-zA-Z_], \D is a negated \d; it represents any character
+but a digit [^0-9], \S is a negated \s; it represents any non-whitespace
+character [^\s], \W is a negated \w; it represents any non-word character
+[^\w], The period '.' matches any character but "\n"
 
-=item Why don't my tied hashes make the defined/exists distinction?
+=item Matching this or that
 
-=item How do I reset an each() operation part-way through?
+=item Grouping things and hierarchical matching
 
-=item How can I get the unique keys from two hashes?
+=item Extracting matches
 
-=item How can I store a multidimensional array in a DBM file?
+=item Matching repetitions
 
-=item How can I make my hash remember the order I put elements into it?
+C<a?> = match 'a' 1 or 0 times, C<a*> = match 'a' 0 or more times, i.e.,
+any number of times, C<a+> = match 'a' 1 or more times, i.e., at least
+once, C<a{n,m}> = match at least C<n> times, but not more than C<m> times,
+C<a{n,}> = match at least C<n> or more times, C<a{n}> = match exactly C<n>
+times
 
-=item Why does passing a subroutine an undefined element in a hash create
-it?
+=item More matching
 
-=item How can I make the Perl equivalent of a C structure/C++ class/hash or
-array of hashes or arrays?
+=item Search and replace
 
-=item How can I use a reference as a hash key?
+=item The split operator
 
 =back
 
-=item Data: Misc
-
-=over
-
-=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 BUGS
 
-=item How do I print out or copy a recursive data structure?
+=item SEE ALSO
 
-=item How do I define methods for every class/object?
+=item AUTHOR AND COPYRIGHT
 
-=item How do I verify a credit card checksum?
+=over
 
-=item How do I pack arrays of doubles or floats for XS code?
+=item Acknowledgments
 
 =back
 
-=item AUTHOR AND COPYRIGHT
-
 =back
 
-=head2 perlfaq5 - Files and Formats ($Revision: 1.38 $, $Date: 1999/05/23
-16:08:30 $)
+=head2 perlretut - Perl regular expressions tutorial
 
 =over
 
 =item DESCRIPTION
 
-=over
+=item Part 1: The basics
 
-=item How do I flush/unbuffer an output filehandle?  Why must I do this?
+=over
 
-=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 Simple word matching
 
-=item How do I count the number of lines in a file?
+=item Using character classes
 
-=item How do I make a temporary file name?
+\d is a digit and represents [0-9], \s is a whitespace character and
+represents [\ \t\r\n\f], \w is a word character (alphanumeric or _) and
+represents [0-9a-zA-Z_], \D is a negated \d; it represents any character
+but a digit [^0-9], \S is a negated \s; it represents any non-whitespace
+character [^\s], \W is a negated \w; it represents any non-word character
+[^\w], The period '.' matches any character but "\n", no modifiers (//):
+Default behavior.  C<'.'> matches any character except C<"\n">.  C<^>
+matches only at the beginning of the string and C<$> matches only at the
+end or before a newline at the end, s modifier (//s): Treat string as a
+single long line.  C<'.'> matches any character, even C<"\n">. C<^>
+matches only at the beginning of the string and C<$> matches only at the
+end or before a newline at the end, m modifier (//m): Treat string as a set
+of multiple lines.  C<'.'> matches any character except C<"\n">.  C<^> and
+C<$> are able to match at the start or end of I<any> line within the
+string, both s and m modifiers (//sm): Treat string as a single long line,
+but detect multiple lines.  C<'.'> matches any character, even C<"\n">. 
+C<^> and C<$>, however, are able to match at the start or end of I<any>
+line within the string
 
-=item How can I manipulate fixed-record-length files?
+=item Matching this or that
 
-=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 Grouping things and hierarchical matching
 
-=item How can I use a filehandle indirectly?
+0 Start with the first letter in the string 'a', 1 Try the first
+alternative in the first group 'abd', 2 Match 'a' followed by 'b'. So far
+so good, 3 'd' in the regexp doesn't match 'c' in the string - a dead end. 
+So backtrack two characters and pick the second alternative in the first
+group 'abc', 4 Match 'a' followed by 'b' followed by 'c'.  We are on a roll
+and have satisfied the first group. Set $1 to 'abc', 5 Move on to the
+second group and pick the first alternative 'df', 6 Match the 'd', 7 'f' in
+the regexp doesn't match 'e' in the string, so a dead end.  Backtrack one
+character and pick the second alternative in the second group 'd', 8 'd'
+matches. The second grouping is satisfied, so set $2 to 'd', 9 We are at
+the end of the regexp, so we are done! We have matched 'abcd' out of the
+string "abcde"
 
-=item How can I set up a footer format to be used with write()?
+=item Extracting matches
 
-=item How can I write() into a string?
+=item Matching repetitions
 
-=item How can I output my numbers with commas added?
+C<a?> = match 'a' 1 or 0 times, C<a*> = match 'a' 0 or more times, i.e.,
+any number of times, C<a+> = match 'a' 1 or more times, i.e., at least
+once, C<a{n,m}> = match at least C<n> times, but not more than C<m> times,
+C<a{n,}> = match at least C<n> or more times, C<a{n}> = match exactly C<n>
+times, Principle 0: Taken as a whole, any regexp will be matched at the
+earliest possible position in the string, Principle 1: In an alternation
+C<a|b|c...>, the leftmost alternative that allows a match for the whole
+regexp will be the one used, Principle 2: The maximal matching quantifiers
+C<?>, C<*>, C<+> and C<{n,m}> will in general match as much of the string
+as possible while still allowing the whole regexp to match, Principle 3: If
+there are two or more elements in a regexp, the leftmost greedy quantifier,
+if any, will match as much of the string as possible while still allowing
+the whole regexp to match.  The next leftmost greedy quantifier, if any,
+will try to match as much of the string remaining available to it as
+possible, while still allowing the whole regexp to match.  And so on, until
+all the regexp elements are satisfied, C<a??> = match 'a' 0 or 1 times. Try
+0 first, then 1, C<a*?> = match 'a' 0 or more times, i.e., any number of
+times, but as few times as possible, C<a+?> = match 'a' 1 or more times,
+i.e., at least once, but as few times as possible, C<a{n,m}?> = match at
+least C<n> times, not more than C<m> times, as few times as possible,
+C<a{n,}?> = match at least C<n> times, but as few times as possible,
+C<a{n}?> = match exactly C<n> times.  Because we match exactly C<n> times,
+C<a{n}?> is equivalent to C<a{n}> and is just there for notational
+consistency, Principle 3: If there are two or more elements in a regexp,
+the leftmost greedy (non-greedy) quantifier, if any, will match as much
+(little) of the string as possible while still allowing the whole regexp to
+match. The next leftmost greedy (non-greedy) quantifier, if any, will try
+to match as much (little) of the string remaining available to it as
+possible, while still allowing the whole regexp to match.  And so on, until
+all the regexp elements are satisfied, 0 Start with the first letter in the
+string 't', 1 The first quantifier '.*' starts out by matching the whole
+string 'the cat in the hat', 2 'a' in the regexp element 'at' doesn't match
+the end of the string. Backtrack one character, 3 'a' in the regexp
+element 'at' still doesn't match the last letter of the string 't', so
+backtrack one more character, 4 Now we can match the 'a' and the 't', 5
+Move on to the third element '.*'.  Since we are at the end of the string
+and '.*' can match 0 times, assign it the empty string, 6 We are done!
 
-=item How can I translate tildes (~) in a filename?
+=item Building a regexp
 
-=item How come when I open a file read-write it wipes it out?
+specifying the task in detail,, breaking down the problem into smaller
+parts,, translating the small parts into regexps,, combining the regexps,,
+and optimizing the final combined regexp
 
-=item Why do I sometimes get an "Argument list too long" when I use <*>?
+=item Using regular expressions in Perl
 
-=item Is there a leak/bug in glob()?
+=back
 
-=item How can I open a file with a leading ">" or trailing blanks?
+=item Part 2: Power tools
 
-=item How can I reliably rename a file?
+=over
 
-=item How can I lock a file?
+=item More on characters, strings, and character classes
 
-=item Why can't I just open(FH, ">file.lock")?
+=item Compiling and saving regular expressions
 
-=item I still don't get locking.  I just want to increment the number in
-the file.  How can I do this?
+=item Embedding comments and modifiers in a regular expression
 
-=item How do I randomly update a binary file?
+=item Non-capturing groupings
+
+=item Looking ahead and looking behind
+
+=item Using independent subexpressions to prevent backtracking
+
+=item Conditional expressions
 
-=item How do I get a file's timestamp in perl?
+=item A bit of magic: executing Perl code in a regular expression
 
-=item How do I set a file's timestamp in perl?
+=item Pragmas and debugging
 
-=item How do I print to more than one file at once?
+=back
 
-=item How can I read in an entire file all at once?
+=item BUGS
 
-=item How can I read in a file by paragraphs?
+=item SEE ALSO
 
-=item How can I read a single character from a file?  From the keyboard?
+=item AUTHOR AND COPYRIGHT
 
-=item How can I tell whether there's a character waiting on a filehandle?
+=over
 
-=item How do I do a C<tail -f> in perl?
+=item Acknowledgments
 
-=item How do I dup() a filehandle in Perl?
+=back
 
-=item How do I close a file descriptor by number?
+=back
 
-=item Why can't I use "C:\temp\foo" in DOS paths?  What doesn't
-`C:\temp\foo.exe` work?
+=head2 perllexwarn - Perl Lexical Warnings
 
-=item Why doesn't glob("*.*") get all the files?
+=over
 
-=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 DESCRIPTION
 
-=item How do I select a random line from a file?
+=over
 
-=item Why do I get weird spaces when I print an array of lines?
+=item Default Warnings and Optional Warnings
 
-=back
+=item What's wrong with B<-w> and C<$^W>
 
-=item AUTHOR AND COPYRIGHT
+=item Controlling Warnings from the Command Line
 
-=back
+B<-w>, B<-W>, B<-X>
 
-=head2 perlfaq6 - Regexes ($Revision: 1.27 $, $Date: 1999/05/23 16:08:30 $)
+=item Backward Compatibility
 
-=over
+=item Category Hierarchy
 
-=item DESCRIPTION
+=item Fatal Warnings
 
-=over
+=item Reporting Warnings from a Module
 
-=item How can I hope to use regular expressions without creating illegible
-and unmaintainable code?
+=back
 
-Comments Outside the Regex, Comments Inside the Regex, Different Delimiters
+=item TODO
 
-=item I'm having trouble matching over more than one line.  What's wrong?
+=item SEE ALSO
 
-=item How can I pull out lines between two patterns that are themselves on
-different lines?
+=item AUTHOR
 
-=item I put a regular expression into $/ but it didn't work. What's wrong?
+=back
 
-=item How do I substitute case insensitively on the LHS, but preserving
-case on the RHS?
+=head2 perldebug - Perl debugging
 
-=item How can I make C<\w> match national character sets?
+=over
 
-=item How can I match a locale-smart version of C</[a-zA-Z]/>?
+=item DESCRIPTION
 
-=item How can I quote a variable to use in a regex?
+=item The Perl Debugger
 
-=item What is C</o> really for?
+=over
 
-=item How do I use a regular expression to strip C style comments from a
-file?
+=item Debugger Commands
 
-=item Can I use Perl regular expressions to match balanced text?
+h [command], p expr, x expr, V [pkg [vars]], X [vars], T, s [expr], n
+[expr], r, <CR>, c [line|sub], l, l min+incr, l min-max, l line, l subname,
+-, w [line], f filename, /pattern/, ?pattern?, L, S [[!]regex], t, t expr,
+b [line] [condition], b subname [condition], b postpone subname
+[condition], b load filename, b compile subname, d [line], D, a [line]
+command, a [line], A, W expr, W, O booloption .., O anyoption? .., O
+option=value .., < ?, < [ command ], << command, > ?, > command, >>
+command, { ?, { [ command ], {{ command, ! number, ! -number, ! pattern, !!
+cmd, H -number, q or ^D, R, |dbcmd, ||dbcmd, command, m expr, man [manpage]
 
-=item What does it mean that regexes are greedy?  How can I get around it?
+=item Configurable Options
 
-=item  How do I process each word on each line?
+C<recallCommand>, C<ShellBang>, C<pager>, C<tkRunning>, C<signalLevel>,
+C<warnLevel>, C<dieLevel>, C<AutoTrace>, C<LineInfo>, C<inhibit_exit>,
+C<PrintRet>, C<ornaments>, C<frame>, C<maxTraceLen>, C<arrayDepth>,
+C<hashDepth>, C<compactDump>, C<veryCompact>, C<globPrint>, C<DumpDBFiles>,
+C<DumpPackages>, C<DumpReused>, C<quote>, C<HighBit>, C<undefPrint>,
+C<UsageOnly>, C<TTY>, C<noTTY>, C<ReadLine>, C<NonStop>
 
-=item How can I print out a word-frequency or line-frequency summary?
+=item Debugger input/output
 
-=item How can I do approximate matching?
+Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame
+listing
 
-=item How do I efficiently match many regular expressions at once?
+=item Debugging compile-time statements
 
-=item Why don't word-boundary searches with C<\b> work for me?
+=item Debugger Customization
 
-=item Why does using $&, $`, or $' slow my program down?
+=item Readline Support
 
-=item What good is C<\G> in a regular expression?
+=item Editor Support for Debugging
 
-=item Are Perl regexes DFAs or NFAs?  Are they POSIX compliant?
+=item The Perl Profiler
 
-=item What's wrong with using grep or map in a void context?
+=back
 
-=item How can I match strings with multibyte characters?
+=item Debugging regular expressions
 
-=item How do I match a pattern that is supplied by the user?
+=item Debugging memory usage
 
-=back
+=item SEE ALSO
 
-=item AUTHOR AND COPYRIGHT
+=item BUGS
 
 =back
 
-=head2 perlfaq7 - Perl Language Issues ($Revision: 1.28 $, $Date:
-1999/05/23 20:36:18 $)
+=head2 perlrun - how to execute the Perl interpreter
 
 =over
 
+=item SYNOPSIS
+
 =item DESCRIPTION
 
 =over
 
-=item Can I get a BNF/yacc/RE for the Perl language?
+=item #! and quoting on non-Unix systems
 
-=item What are all these $@%&* punctuation signs, and how do I know when to
-use them?
+OS/2, MS-DOS, Win95/NT, Macintosh, VMS
 
-=item Do I always/never have to quote my strings or use semicolons and
-commas?
+=item Location of Perl
 
-=item How do I skip some return values?
+=item Command Switches
+
+B<-0>[I<digits>], B<-a>, B<-C>, B<-c>, B<-d>, B<-d:>I<foo>,
+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<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I<name>, B<-w>, B<-W>, B<-X>,
+B<-x> I<directory>
+
+=back
+
+=item ENVIRONMENT
+
+HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLLIB, PERL5DB, PERL5SHELL
+(specific to the Win32 port), PERL_DEBUG_MSTATS, PERL_DESTRUCT_LEVEL,
+PERL_ROOT (specific to the VMS port), SYS$LOGIN (specific to the VMS port)
+
+=back
+
+=head2 perlfunc - Perl builtin functions
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Perl Functions by Category
+
+Functions for SCALARs or strings, Regular expressions and pattern matching,
+Numeric functions, Functions for real @ARRAYs, Functions for list data,
+Functions for real %HASHes, Input and output functions, Functions for fixed
+length data or records, Functions for filehandles, files, or directories,
+Keywords related to the control flow of your perl program, Keywords related
+to scoping, Miscellaneous functions, Functions for processes and process
+groups, Keywords related to perl modules, Keywords related to classes and
+object-orientedness, Low-level socket functions, System V interprocess
+communication functions, Fetching user and group info, Fetching network
+info, Time-related functions, Functions new in perl5, Functions obsoleted
+in perl5
+
+=item Portability
+
+=item Alphabetical Listing of Perl Functions
+
+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, DISCIPLINE, binmode FILEHANDLE, bless REF,CLASSNAME,
+bless REF, caller EXPR, caller, chdir EXPR, chmod LIST, chomp VARIABLE,
+chomp LIST, chomp, chop VARIABLE, chop LIST, chop, chown LIST, chr NUMBER,
+chr, chroot FILENAME, chroot, close FILEHANDLE, close, closedir DIRHANDLE,
+connect SOCKET,NAME, continue BLOCK, cos EXPR, crypt PLAINTEXT,SALT,
+dbmclose HASH, dbmopen HASH,DBNAME,MASK, defined EXPR, defined, delete
+EXPR, die LIST, do BLOCK, do SUBROUTINE(LIST), do EXPR, dump LABEL, dump,
+each HASH, eof FILEHANDLE, eof (), eof, eval EXPR, eval BLOCK, exec LIST,
+exec PROGRAM LIST, exists EXPR, exit EXPR, exp EXPR, exp, fcntl
+FILEHANDLE,FUNCTION,SCALAR, fileno FILEHANDLE, flock FILEHANDLE,OPERATION,
+fork, format, formline PICTURE,LIST, getc FILEHANDLE, getc, getlogin,
+getpeername SOCKET, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam
+NAME, getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname
+NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr
+ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER,
+getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent,
+getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent
+STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent,
+endhostent, endnetent, endprotoent, endservent, getsockname SOCKET,
+getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, goto LABEL,
+goto EXPR, goto &NAME, grep BLOCK LIST, grep EXPR,LIST, hex EXPR, hex,
+import, index STR,SUBSTR,POSITION, index STR,SUBSTR, int EXPR, int, ioctl
+FILEHANDLE,FUNCTION,SCALAR, join EXPR,LIST, keys HASH, kill SIGNAL, LIST,
+last LABEL, last, lc EXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length,
+link OLDFILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, localtime EXPR,
+lock, log EXPR, log, lstat FILEHANDLE, lstat EXPR, lstat, m//, map BLOCK
+LIST, map EXPR,LIST, mkdir FILENAME,MASK, mkdir FILENAME, msgctl
+ID,CMD,ARG, msgget KEY,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, msgsnd
+ID,MSG,FLAGS, my EXPR, my EXPR : ATTRIBUTES, next LABEL, next, no Module
+LIST, oct EXPR, oct, open FILEHANDLE,MODE,LIST, open FILEHANDLE,EXPR, open
+FILEHANDLE, opendir DIRHANDLE,EXPR, ord EXPR, ord, our EXPR, pack
+TEMPLATE,LIST, package, package NAMESPACE, pipe READHANDLE,WRITEHANDLE, pop
+ARRAY, pop, pos SCALAR, pos, print FILEHANDLE LIST, print LIST, print,
+printf FILEHANDLE FORMAT, LIST, printf FORMAT, LIST, prototype FUNCTION,
+push ARRAY,LIST, q/STRING/, qq/STRING/, qr/STRING/, qx/STRING/, qw/STRING/,
+quotemeta EXPR, quotemeta, rand EXPR, rand, read
+FILEHANDLE,SCALAR,LENGTH,OFFSET, read FILEHANDLE,SCALAR,LENGTH, readdir
+DIRHANDLE, readline EXPR, readlink EXPR, readlink, readpipe EXPR, recv
+SOCKET,SCALAR,LENGTH,FLAGS, redo LABEL, redo, ref EXPR, ref, rename
+OLDNAME,NEWNAME, require VERSION, require EXPR, require, reset EXPR, reset,
+return EXPR, return, reverse LIST, rewinddir DIRHANDLE, rindex
+STR,SUBSTR,POSITION, rindex STR,SUBSTR, rmdir FILENAME, rmdir, s///, scalar
+EXPR, seek FILEHANDLE,POSITION,WHENCE, seekdir DIRHANDLE,POS, select
+FILEHANDLE, select, select RBITS,WBITS,EBITS,TIMEOUT, semctl
+ID,SEMNUM,CMD,ARG, semget KEY,NSEMS,FLAGS, semop KEY,OPSTRING, send
+SOCKET,MSG,FLAGS,TO, send SOCKET,MSG,FLAGS, setpgrp PID,PGRP, setpriority
+WHICH,WHO,PRIORITY, setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL, shift ARRAY,
+shift, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, shmread ID,VAR,POS,SIZE,
+shmwrite ID,STRING,POS,SIZE, shutdown SOCKET,HOW, sin EXPR, sin, sleep
+EXPR, sleep, socket SOCKET,DOMAIN,TYPE,PROTOCOL, socketpair
+SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, sort SUBNAME LIST, sort BLOCK LIST,
+sort LIST, splice ARRAY,OFFSET,LENGTH,LIST, splice ARRAY,OFFSET,LENGTH,
+splice ARRAY,OFFSET, splice ARRAY, split /PATTERN/,EXPR,LIMIT, split
+/PATTERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST, sqrt EXPR,
+sqrt, srand EXPR, srand, stat FILEHANDLE, stat EXPR, stat, study SCALAR,
+study, sub BLOCK, sub NAME, sub NAME BLOCK, substr
+EXPR,OFFSET,LENGTH,REPLACEMENT, substr EXPR,OFFSET,LENGTH, substr
+EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall LIST, sysopen
+FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread
+FILEHANDLE,SCALAR,LENGTH,OFFSET, sysread FILEHANDLE,SCALAR,LENGTH, sysseek
+FILEHANDLE,POSITION,WHENCE, system LIST, system PROGRAM LIST, syswrite
+FILEHANDLE,SCALAR,LENGTH,OFFSET, syswrite FILEHANDLE,SCALAR,LENGTH,
+syswrite FILEHANDLE,SCALAR, tell FILEHANDLE, tell, telldir DIRHANDLE, tie
+VARIABLE,CLASSNAME,LIST, tied VARIABLE, time, times, tr///, truncate
+FILEHANDLE,LENGTH, truncate EXPR,LENGTH, uc EXPR, uc, ucfirst EXPR,
+ucfirst, umask EXPR, umask, undef EXPR, undef, unlink LIST, unlink, unpack
+TEMPLATE,EXPR, untie VARIABLE, unshift ARRAY,LIST, use Module VERSION LIST,
+use Module VERSION, use Module LIST, use Module, use VERSION, utime LIST,
+values HASH, vec EXPR,OFFSET,BITS, wait, waitpid PID,FLAGS, wantarray, warn
+LIST, write FILEHANDLE, write EXPR, write, y///
+
+=back
+
+=back
+
+=head2 perlopentut - tutorial on opening things in Perl
+
+=over
+
+=item DESCRIPTION
+
+=item Open E<agrave> la shell
+
+=over
+
+=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
+
+=item Permissions E<agrave> la mode
+
+=back
+
+=item Obscure Open Tricks
+
+=over
+
+=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
+
+=item Opening Non-File Files
+
+=item Binary Files
+
+=item File Locking
+
+=back
+
+=item SEE ALSO 
+
+=item AUTHOR and COPYRIGHT
+
+=item HISTORY
+
+=back
+
+=head2 perlvar - Perl predefined variables
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Predefined Names
+
+$ARG, $_, $<I<digits>>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $',
+$LAST_PAREN_MATCH, $+, @LAST_MATCH_END, @+, $MULTILINE_MATCHING, $*,
+input_line_number HANDLE EXPR, $INPUT_LINE_NUMBER, $NR, $,
+input_record_separator HANDLE EXPR, $INPUT_RECORD_SEPARATOR, $RS, $/,
+autoflush HANDLE EXPR, $OUTPUT_AUTOFLUSH, $|, output_field_separator HANDLE
+EXPR, $OUTPUT_FIELD_SEPARATOR, $OFS, $,, output_record_separator HANDLE
+EXPR, $OUTPUT_RECORD_SEPARATOR, $ORS, $\, $LIST_SEPARATOR, $",
+$SUBSCRIPT_SEPARATOR, $SUBSEP, $;, $OFMT, $#, format_page_number HANDLE
+EXPR, $FORMAT_PAGE_NUMBER, $%, format_lines_per_page HANDLE EXPR,
+$FORMAT_LINES_PER_PAGE, $=, format_lines_left HANDLE EXPR,
+$FORMAT_LINES_LEFT, $-, @LAST_MATCH_START, @-, C<$`> is the same as
+C<substr($var, 0, $-[0])>, C<$&> is the same as C<substr($var, $-[0], $+[0]
+- $-[0])>, C<$'> is the same as C<substr($var, $+[0])>, C<$1> is the same
+as C<substr($var, $-[1], $+[1] - $-[1])>, C<$2> is the same as
+C<substr($var, $-[2], $+[2] - $-[2])>, C<$3> is the same as C<substr $var,
+$-[3], $+[3] - $-[3])>, format_name HANDLE EXPR, $FORMAT_NAME, $~,
+format_top_name HANDLE EXPR, $FORMAT_TOP_NAME, $^,
+format_line_break_characters HANDLE EXPR, $FORMAT_LINE_BREAK_CHARACTERS,
+$:, format_formfeed HANDLE EXPR, $FORMAT_FORMFEED, $^L, $ACCUMULATOR, $^A,
+$CHILD_ERROR, $?, $OS_ERROR, $ERRNO, $!, $EXTENDED_OS_ERROR, $^E,
+$EVAL_ERROR, $@, $PROCESS_ID, $PID, $$, $REAL_USER_ID, $UID, $<,
+$EFFECTIVE_USER_ID, $EUID, $>, $REAL_GROUP_ID, $GID, $(,
+$EFFECTIVE_GROUP_ID, $EGID, $), $PROGRAM_NAME, $0, $[, $], $COMPILING, $^C,
+$DEBUGGING, $^D, $SYSTEM_FD_MAX, $^F, $^H, %^H, $INPLACE_EDIT, $^I, $^M,
+$OSNAME, $^O, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
+0x100, 0x200, $LAST_REGEXP_CODE_RESULT, $^R, $EXCEPTIONS_BEING_CAUGHT, $^S,
+$BASETIME, $^T, $PERL_VERSION, $^V, $WARNING, $^W, ${^WARNING_BITS},
+${^WIDE_SYSTEM_CALLS}, $EXECUTABLE_NAME, $^X, $ARGV, @ARGV, @INC, @_, %INC,
+%ENV, $ENV{expr}, %SIG, $SIG{expr}
+
+=item Error Indicators
+
+=item Technical Note on the Syntax of Variable Names
+
+=back
+
+=item BUGS
+
+=back
+
+=head2 perlsub - Perl subroutines
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over
+
+=item Private Variables via my()
+
+=item Persistent Private Variables
+
+=item Temporary Values via local()
+
+=item Lvalue subroutines
+
+=item Passing Symbol Table Entries (typeglobs)
+
+=item When to Still Use local()
+
+1. You need to give a global variable a temporary value, especially $_, 2.
+You need to create a local file or directory handle or a local function, 3.
+You want to temporarily change just one element of an array or hash
+
+=item Pass by Reference
+
+=item Prototypes
+
+=item Constant Functions
+
+=item Overriding Built-in Functions
+
+=item Autoloading
+
+=item Subroutine Attributes
+
+=back
+
+=item SEE ALSO
+
+=back
+
+=head2 perlmod - Perl modules (packages and symbol tables)
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Packages
+
+=item Symbol Tables
+
+=item Package Constructors and Destructors
+
+=item Perl Classes
+
+=item Perl Modules
+
+=back
+
+=item SEE ALSO
+
+=back
+
+=head2 perlpod - plain old documentation
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Verbatim Paragraph
+
+=item Command Paragraph
+
+=item Ordinary Block of Text
+
+=item The Intent
+
+=item Embedding Pods in Perl Modules
+
+=item Common Pod Pitfalls
+
+=back
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
+=head2 perlstyle - Perl style guide
+
+=over
+
+=item DESCRIPTION
+
+=back
+
+=head2 perlmodlib - constructing new Perl modules and finding existing ones
+
+=over
+
+=item DESCRIPTION
+
+=item THE PERL MODULE LIBRARY
+
+=over
+
+=item Pragmatic Modules
+
+attributes, attrs, autouse, base, blib, bytes, charnames, constant,
+diagnostics, fields, filetest, integer, less, locale, open, ops, overload,
+re, sigtrap, strict, subs, utf8, vars, warnings
+
+=item Standard Modules
+
+AnyDBM_File, AutoLoader, AutoSplit, B, B::Asmdata, B::Assembler, B::Bblock,
+B::Bytecode, B::C, B::CC, B::Debug, B::Deparse, B::Disassembler, B::Lint,
+B::Showlex, B::Stackobj, B::Terse, B::Xref, Benchmark, ByteLoader, CGI,
+CGI::Apache, CGI::Carp, CGI::Cookie, CGI::Fast, CGI::Pretty, CGI::Push,
+CGI::Switch, CPAN, CPAN::FirstTime, CPAN::Nox, Carp, Carp::Heavy,
+Class::Struct, Cwd, DB, DB_File, Devel::SelfStubber, DirHandle, Dumpvalue,
+English, Env, Exporter, Exporter::Heavy, ExtUtils::Command,
+ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtUtils::Liblist,
+ExtUtils::MM_Cygwin, ExtUtils::MM_OS2, ExtUtils::MM_Unix, ExtUtils::MM_VMS,
+ExtUtils::MM_Win32, 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::Functions, File::Spec::Mac, File::Spec::OS2,
+File::Spec::Unix, File::Spec::VMS, File::Spec::Win32, File::Temp,
+File::stat, FileCache, FileHandle, FindBin, Getopt::Long, Getopt::Std,
+I18N::Collate, IO, IPC::Open2, IPC::Open3, Math::BigFloat, Math::BigInt,
+Math::Complex, Math::Trig, NDBM_File, Net::Ping, Net::hostent, Net::netent,
+Net::protoent, Net::servent, O, ODBM_File, Opcode, Pod::Checker, Pod::Find,
+Pod::Html, Pod::InputObjects, Pod::LaTeX, Pod::Man, Pod::ParseUtils,
+Pod::Parser, Pod::Plainer, Pod::Select, Pod::Text, Pod::Text::Color,
+Pod::Text::Termcap, Pod::Usage, SDBM_File, Safe, Search::Dict, SelectSaver,
+SelfLoader, Shell, Socket, Symbol, Term::ANSIColor, Term::Cap,
+Term::Complete, Term::ReadLine, Test, Test::Harness, Text::Abbrev,
+Text::ParseWords, Text::Soundex, Text::Wrap, Tie::Array, Tie::Handle,
+Tie::Hash, Tie::RefHash, Tie::Scalar, Tie::SubstrHash, Time::Local,
+Time::gmtime, Time::localtime, Time::tm, UNIVERSAL, User::grent,
+User::pwent
+
+=item Extension Modules
+
+=back
+
+=item CPAN
+
+Language Extensions and Documentation Tools, Development Support, Operating
+System Interfaces, Networking, Device Control (modems) and InterProcess
+Communication, Data Types and Data Type Utilities, Database Interfaces,
+User Interfaces, Interfaces to / Emulations of Other Programming Languages,
+File Names, File Systems and File Locking (see also File Handles), String
+Processing, Language Text Processing, Parsing, and Searching, Option,
+Argument, Parameter, and Configuration File Processing,
+Internationalization and Locale, Authentication, Security, and Encryption,
+World Wide Web, HTML, HTTP, CGI, MIME, Server and Daemon Utilities,
+Archiving and Compression, Images, Pixmap and Bitmap Manipulation, Drawing,
+and Graphing, Mail and Usenet News, Control Flow Utilities (callbacks and
+exceptions etc), File Handle and Input/Output Stream Utilities,
+Miscellaneous Modules, Africa, Asia, Australasia, Central America, Europe,
+North America, South America
+
+=item Modules: Creation, Use, and Abuse
+
+=over
+
+=item Guidelines for Module Creation
+
+Do similar modules already exist in some form?, Try to design the new
+module to be easy to extend and reuse, Some simple style guidelines, Select
+what to export, Select a name for the module, Have you got it right?,
+README and other Additional Files, A description of the
+module/package/extension etc, A copyright notice - see below, Prerequisites
+- what else you may need to have, How to build it - possible changes to
+Makefile.PL etc, How to install it, Recent changes in this release,
+especially incompatibilities, Changes / enhancements you plan to make in
+the future, Adding a Copyright Notice, Give the module a
+version/issue/release number, How to release and distribute a module, Take
+care when changing a released module
+
+=item Guidelines for Converting Perl 4 Library Scripts into Modules
+
+There is no requirement to convert anything, Consider the implications,
+Make the most of the opportunity, The pl2pm utility will get you started,
+Adds the standard Module prologue lines, Converts package specifiers from '
+to ::, Converts die(...) to croak(...), Several other minor changes
+
+=item Guidelines for Reusing Application Code
+
+Complete applications rarely belong in the Perl Module Library, Many
+applications contain some Perl code that could be reused, Break-out the
+reusable code into one or more separate module files, Take the opportunity
+to reconsider and redesign the interfaces, In some cases the 'application'
+can then be reduced to a small
+
+=back
+
+=item NOTE
+
+=back
+
+=head2 perlmodinstall - Installing CPAN Modules
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=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 HEY
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
+=head2 perlnewmod - preparing a new module for distribution
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Warning
+
+=item What should I make into a module?
+
+=item Step-by-step: Preparing the ground
+
+Look around, Check it's new, Discuss the need, Choose a name, Check again
+
+=item Step-by-step: Making the module
+
+Start with F<h2xs>, Use L<strict|strict> and L<warnings|warnings>, Use
+L<Carp|Carp>, Use L<Exporter|Exporter> - wisely!, Use L<plain old
+documentation|perlpod>, Write tests, Write the README
+
+=item Step-by-step: Distributing your module
+
+Get a CPAN user ID, C<perl Makefile.PL; make test; make dist>, Upload the
+tarball, Announce to the modules list, Announce to clpa, Fix bugs!
+
+=back
+
+=item AUTHOR
+
+=item SEE ALSO
+
+=back
+
+=head2 perltrap - Perl traps for the unwary
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=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
+
+=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 perlport - Writing portable Perl
+
+=over
+
+=item DESCRIPTION
+
+Not all Perl programs have to be portable, Nearly all of Perl already I<is>
+portable
+
+=item ISSUES
+
+=over
+
+=item Newlines
+
+=item Numbers endianness and Width
+
+=item Files and Filesystems
+
+=item System Interaction
+
+=item Interprocess Communication (IPC)
+
+=item External Subroutines (XS)
+
+=item Standard Modules
+
+=item Time and Date
+
+=item Character sets and character encoding
+
+=item Internationalisation
+
+=item System Resources
+
+=item Security
+
+=item Style
+
+=back
+
+=item CPAN Testers
+
+Mailing list: cpan-testers@perl.org, Testing results:
+http://testers.cpan.org/
+
+=item PLATFORMS
+
+=over
+
+=item Unix
+
+=item DOS and Derivatives
+
+Build instructions for OS/2, L<perlos2>
+
+=item S<Mac OS>
+
+=item VMS
+
+=item VOS
+
+=item EBCDIC Platforms
+
+=item Acorn RISC OS
+
+=item Other perls
+
+=back
+
+=item FUNCTION IMPLEMENTATIONS
+
+=over
+
+=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, 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, setpwent,
+setgrent, 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,
+shmread ID,VAR,POS,SIZE, shmwrite ID,STRING,POS,SIZE, socketpair
+SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, stat FILEHANDLE, stat EXPR, stat,
+symlink OLDFILE,NEWFILE, syscall LIST, sysopen
+FILEHANDLE,FILENAME,MODE,PERMS, system LIST, times, truncate
+FILEHANDLE,LENGTH, truncate EXPR,LENGTH, umask EXPR, umask, utime LIST,
+wait, waitpid PID,FLAGS
+
+=back
+
+=item CHANGES
+
+v1.47, 22 March 2000, v1.46, 12 February 2000, v1.45, 20 December 1999,
+v1.44, 19 July 1999, v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May
+1999, v1.40, 11 April 1999, v1.39, 11 February 1999, v1.38, 31 December
+1998, v1.37, 19 December 1998, v1.36, 9 September 1998, v1.35, 13 August
+1998, v1.33, 06 August 1998, v1.32, 05 August 1998, v1.30, 03 August 1998,
+v1.23, 10 July 1998
+
+=item Supported Platforms
+
+=item SEE ALSO
+
+=item AUTHORS / CONTRIBUTORS
+
+=item VERSION
+
+=back
+
+=head2 perlsec - Perl security
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Laundering and Detecting Tainted Data
+
+=item Switches On the "#!" Line
+
+=item Cleaning Up Your Path
+
+=item Security Bugs
+
+=item Protecting Your Programs
+
+=back
+
+=item SEE ALSO
+
+=back
+
+=head2 perlref - Perl references and nested data structures
+
+=over
+
+=item NOTE
+
+=item DESCRIPTION
+
+=over
+
+=item Making References
+
+=item Using References
+
+=item Symbolic references
+
+=item Not-so-symbolic references
+
+=item Pseudo-hashes: Using an array as a hash
+
+=item Function Templates
+
+=back
+
+=item WARNING
+
+=item SEE ALSO
+
+=back
+
+=head2 perlre - Perl regular expressions
+
+=over
+
+=item DESCRIPTION
+
+i, m, s, x
+
+=over
+
+=item Regular Expressions
+
+cntrl, graph, print, punct, xdigit
+
+=item Extended Patterns
+
+C<(?#text)>, C<(?imsx-imsx)>, C<(?:pattern)>, C<(?imsx-imsx:pattern)>,
+C<(?=pattern)>, C<(?!pattern)>, C<(?<=pattern)>, C<(?<!pattern)>, C<(?{
+code })>, C<(??{ code })>, C<< (?>pattern) >>,
+C<(?(condition)yes-pattern|no-pattern)>, C<(?(condition)yes-pattern)>
+
+=item Backtracking
+
+=item Version 8 Regular Expressions
+
+=item Warning on \1 vs $1
+
+=item Repeated patterns matching zero-length substring
+
+=item Combining pieces together
+
+C<ST>, C<S|T>, C<S{REPEAT_COUNT}>, C<S{min,max}>, C<S{min,max}?>, C<S?>,
+C<S*>, C<S+>, C<S??>, C<S*?>, C<S+?>, C<< (?>S) >>, C<(?=S)>, C<(?<=S)>,
+C<(?!S)>, C<(?<!S)>, C<(??{ EXPR })>,
+C<(?(condition)yes-pattern|no-pattern)>
+
+=item Creating custom RE engines
+
+=back
+
+=item BUGS
+
+=item SEE ALSO
+
+=back
+
+=head2 perlform - Perl formats
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Format Variables
+
+=back
+
+=item NOTES
+
+=over
+
+=item Footers
+
+=item Accessing Formatting Internals
+
+=back
+
+=item WARNINGS
+
+=back
+
+=head2 perllocale - Perl locale handling (internationalization and
+localization)
+
+=over
+
+=item DESCRIPTION
+
+=item PREPARING TO USE LOCALES
+
+=item USING LOCALES
+
+=over
+
+=item The use locale pragma
+
+=item The setlocale function
+
+=item Finding locales
+
+=item LOCALE PROBLEMS
+
+=item Temporarily fixing locale problems
+
+=item Permanently fixing locale problems
+
+=item Permanently fixing your system's locale configuration
+
+=item Fixing system locale configuration
+
+=item The localeconv function
+
+=back
+
+=item LOCALE CATEGORIES
+
+=over
+
+=item Category LC_COLLATE: Collation
+
+=item Category LC_CTYPE: Character Types
+
+=item Category LC_NUMERIC: Numeric Formatting
+
+=item Category LC_MONETARY: Formatting of monetary amounts
+
+=item LC_TIME
+
+=item Other categories
+
+=back
+
+=item SECURITY
+
+B<Comparison operators> (C<lt>, C<le>, C<ge>, C<gt> and C<cmp>):,
+B<Case-mapping interpolation> (with C<\l>, C<\L>, C<\u> or C<\U>),
+B<Matching operator> (C<m//>):, B<Substitution operator> (C<s///>):,
+B<Output formatting functions> (printf() and write()):, B<Case-mapping
+functions> (lc(), lcfirst(), uc(), ucfirst()):, B<POSIX locale-dependent
+functions> (localeconv(), strcoll(), strftime(), strxfrm()):, B<POSIX
+character class tests> (isalnum(), isalpha(), isdigit(), isgraph(),
+islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit()):
+
+=item ENVIRONMENT
+
+PERL_BADLANG, LC_ALL, LANGUAGE, LC_CTYPE, LC_COLLATE, LC_MONETARY,
+LC_NUMERIC, LC_TIME, LANG
+
+=item NOTES
+
+=over
+
+=item Backward compatibility
+
+=item I18N:Collate obsolete
+
+=item Sort speed and memory use impacts
+
+=item write() and LC_NUMERIC
+
+=item Freely available locale definitions
+
+=item I18n and l10n
+
+=item An imperfect standard
+
+=back
+
+=item BUGS
+
+=over
+
+=item Broken systems
+
+=back
+
+=item SEE ALSO
+
+=item HISTORY
+
+=back
+
+=head2 perlunicode - Unicode support in Perl
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Important Caveat
+
+Input and Output Disciplines, Regular Expressions, C<use utf8> still needed
+to enable a few features
+
+=item Byte and Character semantics
+
+=item Effects of character semantics
+
+=item Character encodings for input and output
+
+=back
+
+=item CAVEATS
+
+=item SEE ALSO
+
+=back
+
+=head2 perlboot - Beginner's Object-Oriented Tutorial
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=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
+
+=item DESCRIPTION
+
+=item Creating a Class
+
+=over
+
+=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
+
+=item Accessing Class Data
+
+=item Debugging Methods
+
+=item Class Destructors
+
+=item Documenting the Interface
+
+=back
+
+=item Aggregation
+
+=item Inheritance
+
+=over
+
+=item Overridden Methods
+
+=item Multiple Inheritance
+
+=item UNIVERSAL: The Root of All Objects
+
+=back
+
+=item Alternate Object Representations
+
+=over
+
+=item Arrays as Objects
+
+=item Closures as Objects
+
+=back
+
+=item AUTOLOAD: Proxy Methods
+
+=over
+
+=item Autoloaded Data Methods
+
+=item Inherited Autoloaded Data Methods
+
+=back
+
+=item Metaclassical Tools
+
+=over
+
+=item Class::Struct
+
+=item Data Members as Variables
+
+=item NOTES
+
+=item Object Terminology
+
+=back
+
+=item SEE ALSO
+
+=item AUTHOR AND COPYRIGHT
+
+=item COPYRIGHT
+
+=over
+
+=item Acknowledgments
+
+=back
+
+=back
+
+=head2 perltootc - Tom's OO Tutorial for Class Data in Perl
+
+=over
+
+=item DESCRIPTION
+
+=item Class Data as Package Variables
+
+=over
+
+=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
+
+=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
+
+=item DESCRIPTION
+
+=over
+
+=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 WARNING
+
+=item Default UNIVERSAL methods
+
+isa(CLASS), can(METHOD), VERSION( [NEED] )
+
+=item Destructors
+
+=item Summary
+
+=item Two-Phased Garbage Collection
+
+=back
+
+=item SEE ALSO
+
+=back
+
+=head2 perlbot - Bag'o Object Tricks (the BOT)
+
+=over
+
+=item DESCRIPTION
+
+=item OO SCALING TIPS
+
+=item 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
+
+=head2 perltie - how to hide an object class in a simple variable
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over
+
+=item Tying Scalars
+
+TIESCALAR classname, LIST, FETCH this, STORE this, value, DESTROY this
+
+=item Tying Arrays
+
+TIEARRAY classname, LIST, FETCH this, index, STORE this, index, value,
+DESTROY this
+
+=item Tying Hashes
+
+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, DESTROY this
+
+=item Tying FileHandles
+
+TIEHANDLE classname, LIST, WRITE this, LIST, PRINT this, LIST, PRINTF this,
+LIST, READ this, LIST, READLINE this, GETC this, CLOSE this, DESTROY this
+
+=item The C<untie> Gotcha
+
+=back
+
+=item SEE ALSO
+
+=item BUGS
+
+=item AUTHOR
+
+=back
+
+=head2 perlipc - Perl interprocess communication (signals, fifos, pipes,
+safe subprocesses, sockets, and semaphores)
+
+=over
+
+=item DESCRIPTION
+
+=item Signals
+
+=item Named Pipes
+
+=over
+
+=item WARNING
+
+=back
+
+=item Using open() for IPC
+
+=over
+
+=item Filehandles
+
+=item Background Processes
+
+=item Complete Dissociation of Child from Parent
+
+=item Safe Pipe Opens
+
+=item Bidirectional Communication with Another Process
+
+=item Bidirectional Communication with Yourself
+
+=back
+
+=item Sockets: Client/Server Communication
+
+=over
+
+=item Internet Line Terminators
+
+=item Internet TCP Clients and Servers
+
+=item Unix-Domain TCP Clients and Servers
+
+=back
+
+=item TCP Clients with IO::Socket
+
+=over
+
+=item A Simple Client
+
+C<Proto>, C<PeerAddr>, C<PeerPort>
+
+=item A Webget Client
+
+=item Interactive Client with IO::Socket
+
+=back
+
+=item TCP Servers with IO::Socket
+
+Proto, LocalPort, Listen, Reuse
+
+=item UDP: Message Passing
+
+=item SysV IPC
+
+=item NOTES
+
+=item BUGS
+
+=item AUTHOR
+
+=item SEE ALSO
+
+=back
+
+=head2 perlnumber - semantics of numbers and numeric operations in Perl
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item Storing numbers
+
+=item Numeric operators and numeric conversions
+
+=item Flavors of Perl numeric operations
+
+Arithmetic operators except, C<no integer>, Arithmetic operators except,
+C<use integer>, Bitwise operators, C<no integer>, Bitwise operators, C<use
+integer>, Operators which expect an integer, Operators which expect a
+string
+
+=item AUTHOR
+
+=item SEE ALSO
+
+=back
+
+=head2 perlfork - Perl's fork() emulation
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over
+
+=item Behavior of other Perl features in forked pseudo-processes
+
+$$ or $PROCESS_ID, %ENV, chdir() and all other builtins that accept
+filenames, wait() and waitpid(), kill(), exec(), exit(), Open handles to
+files, directories and network sockets
+
+=item Resource limits
+
+=item Killing the parent process
+
+=item Lifetime of the parent process and pseudo-processes
+
+=item CAVEATS AND LIMITATIONS
+
+BEGIN blocks, Open filehandles, Forking pipe open() not yet implemented,
+Global state maintained by XSUBs, Interpreter embedded in larger
+application, Thread-safety of extensions
+
+=back
+
+=item BUGS
+
+=item AUTHOR
+
+=item SEE ALSO
+
+=back
+
+=head2 perlthrtut - tutorial on threads in Perl
+
+=over
+
+=item DESCRIPTION
+
+=item What Is A Thread Anyway?
+
+=item Threaded Program Models
+
+=over
+
+=item Boss/Worker
+
+=item Work Crew
+
+=item Pipeline
+
+=back
+
+=item Native threads
+
+=item What kind of threads are perl threads?
+
+=item Threadsafe Modules
+
+=item Thread Basics
+
+=over
+
+=item Basic Thread Support
+
+=item Creating Threads
+
+=item Giving up control
+
+=item Waiting For A Thread To Exit
+
+=item Errors In Threads
+
+=item Ignoring A Thread
+
+=back
+
+=item Threads And Data
+
+=over
+
+=item Shared And Unshared Data
+
+=item Thread Pitfall: Races
+
+=item Controlling access: lock()
+
+=item Thread Pitfall: Deadlocks
+
+=item Queues: Passing Data Around
+
+=back
+
+=item Threads And Code
+
+=over
+
+=item Semaphores: Synchronizing Data Access
+
+Basic semaphores, Advanced Semaphores
+
+=item Attributes: Restricting Access To Subroutines
+
+=item Subroutine Locks
+
+=item Methods
+
+=item Locking A Subroutine
+
+=back
+
+=item General Thread Utility Routines
+
+=over
+
+=item What Thread Am I In?
+
+=item Thread IDs
+
+=item Are These Threads The Same?
+
+=item What Threads Are Running?
+
+=back
+
+=item A Complete Example
+
+=item Conclusion
+
+=item Bibliography
+
+=over
+
+=item Introductory Texts
+
+=item OS-Related References
+
+=item Other References
+
+=back
+
+=item Acknowledgements
+
+=item AUTHOR
+
+=item Copyrights
+
+=back
+
+=head2 perldiag - various Perl diagnostics
+
+=over
+
+=item DESCRIPTION
+
+=back
+
+=head2 perlfaq1 - General Questions About Perl ($Revision: 1.23 $, $Date:
+1999/05/23 16:08:30 $)
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=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.005/Perl instead of some other language)?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.32 $,
+$Date: 1999/10/14 18:46:09 $)
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=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?
+
+=back
+
+=item AUTHOR AND COPYRIGHT
+
+=back
+
+=head2 perlfaq3 - Programming Tools ($Revision: 1.38 $, $Date: 1999/05/23
+16:08:30 $)
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=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?
+
+=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 What is undump?
+
+=item How can I make my Perl program run faster?
+
+=item How can I make my Perl program take less memory?
+
+=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.49 $, $Date: 1999/05/23
+20:37:49 $)
+
+=over
+
+=item DESCRIPTION
+
+=item Data: Numbers
+
+=over
+
+=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 bits into ints?
+
+=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?
+
+=back
+
+=item Data: Dates
+
+=over
+
+=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
+
+=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
+
+=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) If @in is sorted, and you want @out to be sorted: (this assumes all true
+values in the array), b) If you don't know whether @in is sorted:, c) Like
+(b), but @in contains only small integers:, d) A way to do (b) without any
+loops or greps:, e) Like (d), but @in contains only small positive
+integers:
+
+=item How can I tell whether a list or array contains a certain element?
+
+=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
+
+=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
+
+=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.38 $, $Date: 1999/05/23
+16:08:30 $)
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=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 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?  What 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 - Regexes ($Revision: 1.27 $, $Date: 1999/05/23 16:08:30 $)
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=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, but 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 - Perl Language Issues ($Revision: 1.28 $, $Date:
+1999/05/23 20:36:18 $)
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=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?
 
@@ -1129,634 +3320,542 @@ CGI script to do bad things?
 
 =back
 
-=head2 perldelta - what's new for perl v5.6.0
+=head2 perlcompile - Introduction to the Perl Compiler-Translator 
 
 =over
 
 =item DESCRIPTION
 
-=item Core Enhancements
-
 =over
 
-=item Interpreter cloning, threads, and concurrency
-
-=item Lexically scoped warning categories
-
-=item Unicode and UTF-8 support
-
-=item Support for interpolating named characters
-
-=item "our" declarations
-
-=item Support for strings represented as a vector of ordinals
-
-=item Improved Perl version numbering system
-
-=item New syntax for declaring subroutine attributes
-
-=item File and directory handles can be autovivified
-
-=item open() with more than two arguments
-
-=item 64-bit support
-
-=item Large file support
-
-=item Long doubles
-
-=item "more bits"
-
-=item Enhanced support for sort() subroutines
-
-=item C<sort $coderef @foo> allowed
-
-=item File globbing implemented internally
-
-Support for CHECK blocks
-
-=item POSIX character class syntax [: :] supported
-
-Better pseudo-random number generator
-
-=item Improved C<qw//> operator
-
-Better worst-case behavior of hashes
+=item Layout
 
-=item pack() format 'Z' supported
+B::Bytecode, B::C, B::CC, B::Lint, B::Deparse, B::Xref
 
-=item pack() format modifier '!' supported
+=back
 
-=item pack() and unpack() support counted strings
+=item Using The Back Ends
 
-=item Comments in pack() templates
+=over
 
-=item Weak references
+=item The Cross Referencing Back End
 
-=item Binary numbers supported
+i, &, s, r
 
-=item Lvalue subroutines
+=item The Decompiling Back End
 
-=item Some arrows may be omitted in calls through references
+=item The Lint Back End
 
-=item Boolean assignment operators are legal lvalues
+=item The Simple C Back End
 
-=item exists() is supported on subroutine names
+=item The Bytecode Back End
 
-=item exists() and delete() are supported on array elements
+=item The Optimized C Back End
 
-=item Pseudo-hashes work better
+B, O, B::Asmdata, B::Assembler, B::Bblock, B::Bytecode, B::C, B::CC,
+B::Debug, B::Deparse, B::Disassembler, B::Lint, B::Showlex, B::Stackobj,
+B::Stash, B::Terse, B::Xref
 
-=item Automatic flushing of output buffers
+=back
 
-=item Better diagnostics on meaningless filehandle operations
+=item KNOWN PROBLEMS
 
-=item Where possible, buffered data discarded from duped input filehandle
+=item AUTHOR
 
-=item eof() has the same old magic as <>
+=back
 
-=item binmode() can be used to set :crlf and :raw modes
+=head2 perlembed - how to embed perl in your C program
 
-=item C<-T> filetest recognizes UTF-8 encoded files as "text"
+=over
 
-=item system(), backticks and pipe open now reflect exec() failure
+=item DESCRIPTION
 
-=item Improved diagnostics
+=over
 
-=item Diagnostics follow STDERR
+=item PREAMBLE
 
-More consistent close-on-exec behavior
+B<Use C from Perl?>, B<Use a Unix program from Perl?>, B<Use Perl from
+Perl?>, B<Use C from C?>, B<Use Perl from C?>
 
-=item syswrite() ease-of-use
+=item ROADMAP
 
-=item Better syntax checks on parenthesized unary operators
+=item Compiling your C program
 
-=item Bit operators support full native integer width
+=item Adding a Perl interpreter to your C program
 
-=item Improved security features
+=item Calling a Perl subroutine from your C program
 
-More functional bareword prototype (*)
+=item Evaluating a Perl statement from your C program
 
-=item C<require> and C<do> may be overridden
+=item Performing Perl pattern matches and substitutions from your C program
 
-=item $^X variables may now have names longer than one character
+=item Fiddling with the Perl stack from your C program
 
-=item New variable $^C reflects C<-c> switch
+=item Maintaining a persistent interpreter
 
-=item New variable $^V contains Perl version as a string
+=item Maintaining multiple interpreter instances
 
-=item Optional Y2K warnings
+=item Using Perl modules, which themselves use C libraries, from your C
+program
 
 =back
 
-=item Modules and Pragmata
-
-=over
-
-=item Modules
-
-attributes, B, Benchmark, ByteLoader, constant, charnames, Data::Dumper,
-DB, DB_File, Devel::DProf, Devel::Peek, Dumpvalue, DynaLoader, English,
-Env, Fcntl, File::Compare, File::Find, File::Glob, File::Spec,
-File::Spec::Functions, Getopt::Long, IO, JPL, lib, Math::BigInt,
-Math::Complex, Math::Trig, Pod::Parser, Pod::InputObjects, Pod::Checker,
-podchecker, Pod::ParseUtils, Pod::Find, Pod::Select, podselect, Pod::Usage,
-pod2usage, Pod::Text and Pod::Man, SDBM_File, Sys::Syslog, Sys::Hostname,
-Term::ANSIColor, Time::Local, Win32, XSLoader, DBM Filters
+=item Embedding Perl under Windows
 
-=item Pragmata
+=item MORAL
 
-=back
+=item AUTHOR
 
-=item Utility Changes
+=item COPYRIGHT
 
-=over
+=back
 
-=item dprofpp
+=head2 perldebguts - Guts of Perl debugging 
 
-=item find2perl
+=over
 
-=item h2xs
+=item DESCRIPTION
 
-=item perlcc
+=item Debugger Internals
 
-=item perldoc
+=over
 
-=item The Perl Debugger
+=item Writing Your Own Debugger
 
 =back
 
-=item Improved Documentation
-
-perlapi.pod, perlboot.pod, perlcompile.pod, perldbmfilter.pod,
-perldebug.pod, perldebguts.pod, perlfork.pod, perlfilter.pod, perlhack.pod,
-perlintern.pod, perllexwarn.pod, perlnumber.pod, perlopentut.pod,
-perlreftut.pod, perltootc.pod, perltodo.pod, perlunicode.pod
+=item Frame Listing Output Examples
 
-=item Performance enhancements
+=item Debugging regular expressions
 
 =over
 
-=item Simple sort() using { $a <=> $b } and the like are optimized
+=item Compile-time output
 
-=item Optimized assignments to lexical variables
+C<anchored> I<STRING> C<at> I<POS>, C<floating> I<STRING> C<at>
+I<POS1..POS2>, C<matching floating/anchored>, C<minlen>, C<stclass>
+I<TYPE>, C<noscan>, C<isall>, C<GPOS>, C<plus>, C<implicit>, C<with eval>,
+C<anchored(TYPE)>
 
-=item Faster subroutine calls
+=item Types of nodes
 
-delete(), each(), values() and hash iteration are faster
+=item Run-time output
 
 =back
 
-=item Installation and Configuration Improvements
+=item Debugging Perl memory usage
 
 =over
 
-=item -Dusethreads means something different
-
-=item New Configure flags
+=item Using C<$ENV{PERL_DEBUG_MSTATS}>
 
-=item Threadedness and 64-bitness now more daring
+C<buckets SMALLEST(APPROX)..GREATEST(APPROX)>, Free/Used, C<Total sbrk():
+SBRKed/SBRKs:CONTINUOUS>, C<pad: 0>, C<heads: 2192>, C<chain: 0>, C<tail:
+6144>
 
-=item Long Doubles
+=item Example of using B<-DL> switch
 
-=item -Dusemorebits
+C<717>, C<002>, C<054>, C<602>, C<702>, C<704>
 
-=item -Duselargefiles
+=item B<-DL> details
 
-=item installusrbinperl
+C<!!!>, C<!!>, C<!>
 
-=item SOCKS support
+=item Limitations of B<-DL> statistics
 
-=item C<-A> flag
+=back
 
-=item Enhanced Installation Directories
+=item SEE ALSO
 
 =back
 
-=item Platform specific changes
+=head2 perlxstut, perlXStut - Tutorial for writing XSUBs
 
 =over
 
-=item Supported platforms
+=item DESCRIPTION
 
-=item DOS
+=item SPECIAL NOTES
 
-=item OS390 (OpenEdition MVS)
+=over
 
-=item VMS
+=item make
 
-=item Win32
+=item Version caveat
+
+=item Dynamic Loading versus Static Loading
 
 =back
 
-=item Significant bug fixes
+=item TUTORIAL
 
 =over
 
-=item <HANDLE> on empty files
+=item EXAMPLE 1
 
-=item C<eval '...'> improvements
+=item EXAMPLE 2
 
-=item All compilation errors are true errors
+=item What has gone on?
 
-=item Implicitly closed filehandles are safer
+=item Writing good test scripts
 
-=item Behavior of list slices is more consistent
+=item EXAMPLE 3
 
-=item C<(\$)> prototype and C<$foo{a}>
+=item What's new here?
 
-=item C<goto &sub> and AUTOLOAD
+=item Input and Output Parameters
 
-=item C<-bareword> allowed under C<use integer>
+=item The XSUBPP Program
 
-=item Failures in DESTROY()
+=item The TYPEMAP file
 
-=item Locale bugs fixed
+=item Warning about Output Arguments
 
-=item Memory leaks
+=item EXAMPLE 4
 
-=item Spurious subroutine stubs after failed subroutine calls
+=item What has happened here?
 
-=item Taint failures under C<-U>
+=item Anatomy of .xs file
 
-=item END blocks and the C<-c> switch
+=item Getting the fat out of XSUBs
 
-=item Potential to leak DATA filehandles
+=item More about XSUB arguments
 
-=back
+=item The Argument Stack
 
-=item New or Changed Diagnostics
+=item Extending your Extension
 
-"%s" variable %s masks earlier declaration in same %s, "my sub" not yet
-implemented, "our" variable %s redeclared, '!' allowed only after types %s,
-/ cannot take a count, / must be followed by a, A or Z, / must be followed
-by a*, A* or Z*, / must follow a numeric type, /%s/: Unrecognized escape
-\\%c passed through, /%s/: Unrecognized escape \\%c in character class
-passed through, /%s/ should probably be written as "%s", %s() called too
-early to check prototype, %s argument is not a HASH or ARRAY element, %s
-argument is not a HASH or ARRAY element or slice, %s argument is not a
-subroutine name, %s package attribute may clash with future reserved word:
-%s, (in cleanup) %s, <> should be quotes, Attempt to join self, Bad evalled
-substitution pattern, Bad realloc() ignored, Bareword found in conditional,
-Binary number > 0b11111111111111111111111111111111 non-portable, Bit vector
-size > 32 non-portable, Buffer overflow in prime_env_iter: %s, Can't check
-filesystem of script "%s", Can't declare class for non-scalar %s in "%s",
-Can't declare %s in "%s", Can't ignore signal CHLD, forcing to default,
-Can't modify non-lvalue subroutine call, Can't read CRTL environ, Can't
-remove %s: %s, skipping file, Can't return %s from lvalue subroutine, Can't
-weaken a nonreference, Character class [:%s:] unknown, Character class
-syntax [%s] belongs inside character classes, Constant is not %s reference,
-constant(%s): %s, CORE::%s is not a keyword, defined(@array) is deprecated,
-defined(%hash) is deprecated, Did not produce a valid header, (Did you mean
-"local" instead of "our"?), Document contains no data, entering effective
-%s failed, false [] range "%s" in regexp, Filehandle %s opened only for
-output, flock() on closed filehandle %s, Global symbol "%s" requires
-explicit package name, Hexadecimal number > 0xffffffff non-portable,
-Ill-formed CRTL environ value "%s", Ill-formed message in prime_env_iter:
-|%s|, Illegal binary digit %s, Illegal binary digit %s ignored, Illegal
-number of bits in vec, Integer overflow in %s number, Invalid %s attribute:
-%s, Invalid %s attributes: %s, invalid [] range "%s" in regexp, Invalid
-separator character %s in attribute list, Invalid separator character %s in
-subroutine attribute list, leaving effective %s failed, Lvalue subs
-returning %s not implemented yet, Method %s not permitted, Missing
-%sbrace%s on \N{}, Missing command in piped open, Missing name in "my sub",
-No %s specified for -%c, No package name allowed for variable %s in "our",
-No space allowed after -%c, no UTC offset information; assuming local time
-is UTC, Octal number > 037777777777 non-portable, panic: del_backref,
-panic: kid popen errno read, panic: magic_killbackrefs, Parentheses missing
-around "%s" list, Possible Y2K bug: %s, pragma "attrs" is deprecated, use
-"sub NAME : ATTRS" instead, Premature end of script headers, Repeat count
-in pack overflows, Repeat count in unpack overflows, realloc() of freed
-memory ignored, Reference is already weak, setpgrp can't take arguments,
-Strange *+?{} on zero-length expression, switching effective %s is not
-implemented, This Perl can't reset CRTL environ elements (%s), This Perl
-can't set CRTL environ elements (%s=%s), Too late to run %s block, Unknown
-open() mode '%s', Unknown process %x sent message to prime_env_iter: %s,
-Unrecognized escape \\%c passed through, Unterminated attribute parameter
-in attribute list, Unterminated attribute list, Unterminated attribute
-parameter in subroutine attribute list, Unterminated subroutine attribute
-list, Value of CLI symbol "%s" too long, Version number must be a constant
-number
+=item Documenting your Extension
 
-=item New tests
+=item Installing your Extension
 
-=item Incompatible Changes
+=item EXAMPLE 5
 
-=over
+=item New Things in this Example
 
-=item Perl Source Incompatibilities
+=item EXAMPLE 6
 
-CHECK is a new keyword, Treatment of list slices of undef has changed
+=item New Things in this Example
 
-=item Format of $English::PERL_VERSION is different
+=item EXAMPLE 7 (Coming Soon)
 
-Literals of the form C<1.2.3> parse differently, Possibly changed
-pseudo-random number generator, Hashing function for hash keys has changed,
-C<undef> fails on read only values, Close-on-exec bit may be set on pipe
-and socket handles, Writing C<"$$1"> to mean C<"${$}1"> is unsupported,
-delete(), values() and C<\(%h)> operate on aliases to values, not copies,
-vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS, Text of some diagnostic
-output has changed, C<%@> has been removed, Parenthesized not() behaves
-like a list operator, Semantics of bareword prototype C<(*)> have changed
+=item EXAMPLE 8 (Coming Soon)
 
-=item Semantics of bit operators may have changed on 64-bit platforms
+=item EXAMPLE 9 (Coming Soon)
 
-=item More builtins taint their results
+=item Troubleshooting these Examples
 
-=item C Source Incompatibilities
+=back
 
-C<PERL_POLLUTE>, C<PERL_IMPLICIT_CONTEXT>, C<PERL_POLLUTE_MALLOC>
+=item See also
 
-=item Compatible C Source API Changes
+=item Author
 
-C<PATCHLEVEL> is now C<PERL_VERSION>
+=over
 
-=item Binary Incompatibilities
+=item Last Changed
 
 =back
 
-=item Known Problems
+=back
+
+=head2 perlxs - XS language reference manual
 
 =over
 
-=item Thread test failures
+=item DESCRIPTION
 
-=item EBCDIC platforms not supported
+=over
 
-=item In 64-bit HP-UX the lib/io_multihomed test may hang
+=item Introduction
 
-=item NEXTSTEP 3.3 POSIX test failure
+=item On The Road
 
-=item Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with
-gcc
+=item The Anatomy of an XSUB
 
-=item UNICOS/mk CC failures during Configure run
+=item The Argument Stack
 
-=item Arrow operator and arrays
+=item The RETVAL Variable
 
-=item Windows 2000
+=item The MODULE Keyword
 
-=item Experimental features
+=item The PACKAGE Keyword
 
-Threads, Unicode, 64-bit support, Lvalue subroutines, Weak references, The
-pseudo-hash data type, The Compiler suite, Internal implementation of file
-globbing, The DB module, The regular expression constructs C<(?{ code })>
-and C<(??{ code })>
+=item The PREFIX Keyword
 
-=back
+=item The OUTPUT: Keyword
 
-=item Obsolete Diagnostics
+=item The CODE: Keyword
+
+=item The INIT: Keyword
+
+=item The NO_INIT Keyword
+
+=item Initializing Function Parameters
+
+=item Default Parameter Values
+
+=item The PREINIT: Keyword
+
+=item The SCOPE: Keyword
+
+=item The INPUT: Keyword
+
+=item Variable-length Parameter Lists
+
+=item The C_ARGS: Keyword
+
+=item The PPCODE: Keyword
+
+=item Returning Undef And Empty Lists
+
+=item The REQUIRE: Keyword
 
-Character class syntax [: :] is reserved for future extensions, Ill-formed
-logical name |%s| in prime_env_iter, Probable precedence problem on %s,
-regexp too big, Use of "$$<digit>" to mean "${$}<digit>" is deprecated
+=item The CLEANUP: Keyword
 
-=item Reporting Bugs
+=item The BOOT: Keyword
 
-=item SEE ALSO
+=item The VERSIONCHECK: Keyword
 
-=item HISTORY
+=item The PROTOTYPES: Keyword
 
-=back
+=item The PROTOTYPE: Keyword
 
-=head2 perldata - Perl data types
+=item The ALIAS: Keyword
 
-=over
+=item The INTERFACE: Keyword
 
-=item DESCRIPTION
+=item The INTERFACE_MACRO: Keyword
 
-=over
+=item The INCLUDE: Keyword
 
-=item Variable names
+=item The CASE: Keyword
 
-=item Context
+=item The & Unary Operator
 
-=item Scalar values
+=item Inserting Comments and C Preprocessor Directives
 
-=item Scalar value constructors
+=item Using XS With C++
 
-=item List value constructors
+=item Interface Strategy
 
-=item Slices
+=item Perl Objects And C Structures
 
-=item Typeglobs and Filehandles
+=item The Typemap
 
 =back
 
-=item SEE ALSO
+=item EXAMPLES
+
+=item XS VERSION
+
+=item AUTHOR
 
 =back
 
-=head2 perlsyn - Perl syntax
+=head2 perlguts - Introduction to the Perl API
 
 =over
 
 =item DESCRIPTION
 
-=over
+=item Variables
 
-=item Declarations
+=over
 
-=item Simple statements
+=item Datatypes
 
-=item Compound statements
+=item What is an "IV"?
 
-=item Loop Control
+=item Working with SVs
 
-=item For Loops
+=item What's Really Stored in an SV?
 
-=item Foreach Loops
+=item Working with AVs
 
-=item Basic BLOCKs and Switch Statements
+=item Working with HVs
 
-=item Goto
+=item Hash API Extensions
 
-=item PODs: Embedded Documentation
+=item References
 
-=item Plain Old Comments (Not!)
+=item Blessed References and Class Objects
 
-=back
+=item Creating New Variables
 
-=back
+=item Reference Counts and Mortality
 
-=head2 perlop - Perl operators and precedence
+=item Stashes and Globs
 
-=over
+=item Double-Typed SVs
 
-=item SYNOPSIS
+=item Magic Variables
 
-=item DESCRIPTION
+=item Assigning Magic
 
-=over
+=item Magic Virtual Tables
 
-=item Terms and List Operators (Leftward)
+=item Finding Magic
 
-=item The Arrow Operator
+=item Understanding the Magic of Tied Hashes and Arrays
 
-=item Auto-increment and Auto-decrement
+=item Localizing changes
 
-=item Exponentiation
+C<SAVEINT(int i)>, C<SAVEIV(IV i)>, C<SAVEI32(I32 i)>, C<SAVELONG(long i)>,
+C<SAVESPTR(s)>, C<SAVEPPTR(p)>, C<SAVEFREESV(SV *sv)>, C<SAVEFREEOP(OP
+*op)>, C<SAVEFREEPV(p)>, C<SAVECLEARSV(SV *sv)>, C<SAVEDELETE(HV *hv, char
+*key, I32 length)>, C<SAVEDESTRUCTOR(DESTRUCTORFUNC_NOCONTEXT_t f, void
+*p)>, C<SAVEDESTRUCTOR_X(DESTRUCTORFUNC_t f, void *p)>, C<SAVESTACK_POS()>,
+C<SV* save_scalar(GV *gv)>, C<AV* save_ary(GV *gv)>, C<HV* save_hash(GV
+*gv)>, C<void save_item(SV *item)>, C<void save_list(SV **sarg, I32
+maxsarg)>, C<SV* save_svref(SV **sptr)>, C<void save_aptr(AV **aptr)>,
+C<void save_hptr(HV **hptr)>
 
-=item Symbolic Unary Operators
+=back
 
-=item Binding Operators
+=item Subroutines
 
-=item Multiplicative Operators
+=over
 
-=item Additive Operators
+=item XSUBs and the Argument Stack
 
-=item Shift Operators
+=item Calling Perl Routines from within C Programs
 
-=item Named Unary Operators
+=item Memory Allocation
 
-=item Relational Operators
+=item PerlIO
 
-=item Equality Operators
+=item Putting a C value on Perl stack
 
-=item Bitwise And
+=item Scratchpads
 
-=item Bitwise Or and Exclusive Or
+=item Scratchpads and recursion
 
-=item C-style Logical And
+=back
 
-=item C-style Logical Or
+=item Compiled code
 
-=item Range Operators
+=over
 
-=item Conditional Operator
+=item Code tree
 
-=item Assignment Operators
+=item Examining the tree
 
-=item Comma Operator
+=item Compile pass 1: check routines
 
-=item List Operators (Rightward)
+=item Compile pass 1a: constant folding
 
-=item Logical Not
+=item Compile pass 2: context propagation
 
-=item Logical And
+=item Compile pass 3: peephole optimization
 
-=item Logical or and Exclusive Or
+=back
 
-=item C Operators Missing From Perl
+=item How multiple interpreters and concurrency are supported
 
-unary &, unary *, (TYPE)
+=over
 
-=item Quote and Quote-like Operators
+=item Background and PERL_IMPLICIT_CONTEXT
 
-=item Regexp Quote-Like Operators
+=item How do I use all this in extensions?
 
-?PATTERN?, m/PATTERN/cgimosx, /PATTERN/cgimosx, q/STRING/, C<'STRING'>,
-qq/STRING/, "STRING", qr/STRING/imosx, qx/STRING/, `STRING`, qw/STRING/,
-s/PATTERN/REPLACEMENT/egimosx, tr/SEARCHLIST/REPLACEMENTLIST/cds,
-y/SEARCHLIST/REPLACEMENTLIST/cds
+=item Future Plans and PERL_IMPLICIT_SYS
 
-=item Gory details of parsing quoted constructs
+=back
 
-Finding the end, Removal of backslashes before delimiters, Interpolation,
-C<<<'EOF'>, C<m''>, C<s'''>, C<tr///>, C<y///>, C<''>, C<q//>, C<"">,
-C<``>, C<qq//>, C<qx//>, C<< <file*glob> >>, C<?RE?>, C</RE/>, C<m/RE/>,
-C<s/RE/foo/>,, Interpolation of regular expressions, Optimization of
-regular expressions
+=item AUTHORS
 
-=item I/O Operators
+=item SEE ALSO
 
-=item Constant Folding
+=back
 
-=item Bitwise String Operators
+=head2 perlcall - Perl calling conventions from C
 
-=item Integer Arithmetic
+=over
 
-=item Floating-point Arithmetic
+=item DESCRIPTION
 
-=item Bigger Numbers
+An Error Handler, An Event Driven Program
 
-=back
+=item THE CALL_ FUNCTIONS
 
-=back
+call_sv, call_pv, call_method, call_argv
 
-=head2 perlre - Perl regular expressions
+=item FLAG VALUES
 
 =over
 
-=item DESCRIPTION
+=item  G_VOID
 
-i, m, s, x
+=item  G_SCALAR
 
-=over
+=item G_ARRAY
 
-=item Regular Expressions
+=item G_DISCARD
 
-cntrl, graph, print, punct, xdigit
+=item G_NOARGS
 
-=item Extended Patterns
+=item G_EVAL
 
-C<(?#text)>, C<(?imsx-imsx)>, C<(?:pattern)>, C<(?imsx-imsx:pattern)>,
-C<(?=pattern)>, C<(?!pattern)>, C<(?<=pattern)>, C<(?<!pattern)>, C<(?{
-code })>, C<(??{ code })>, C<< (?>pattern) >>,
-C<(?(condition)yes-pattern|no-pattern)>, C<(?(condition)yes-pattern)>
+=item G_KEEPERR
 
-=item Backtracking
+=item Determining the Context
 
-=item Version 8 Regular Expressions
+=back
 
-=item Warning on \1 vs $1
+=item KNOWN PROBLEMS
 
-=item Repeated patterns matching zero-length substring
+=item EXAMPLES
 
-=item Combining pieces together
+=over
 
-C<ST>, C<S|T>, C<S{REPEAT_COUNT}>, C<S{min,max}>, C<S{min,max}?>, C<S?>,
-C<S*>, C<S+>, C<S??>, C<S*?>, C<S+?>, C<< (?>S) >>, C<(?=S)>, C<(?<=S)>,
-C<(?!S)>, C<(?<!S)>, C<(??{ EXPR })>,
-C<(?(condition)yes-pattern|no-pattern)>
+=item No Parameters, Nothing returned
 
-=item Creating custom RE engines
+=item Passing Parameters
 
-=back
+=item Returning a Scalar
 
-=item BUGS
+=item Returning a list of values
 
-=item SEE ALSO
+=item Returning a list in a scalar context
 
-=back
+=item Returning Data from Perl via the parameter list
 
-=head2 perlrun - how to execute the Perl interpreter
+=item Using G_EVAL
 
-=over
+=item Using G_KEEPERR
 
-=item SYNOPSIS
+=item Using call_sv
 
-=item DESCRIPTION
+=item Using call_argv
 
-=over
+=item Using call_method
 
-=item #! and quoting on non-Unix systems
+=item Using GIMME_V
 
-OS/2, MS-DOS, Win95/NT, Macintosh, VMS
+=item Using Perl to dispose of temporaries
 
-=item Location of Perl
+=item Strategies for storing Callback Context Information
 
-=item Command Switches
+1. Ignore the problem - Allow only 1 callback, 2. Create a sequence of
+callbacks - hard wired limit, 3. Use a parameter to map to the Perl
+callback
 
-B<-0>[I<digits>], B<-a>, B<-C>, B<-c>, B<-d>, B<-d:>I<foo>,
-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<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I<name>, B<-w>, B<-W>, B<-X>,
-B<-x> I<directory>
+=item Alternate Stack Manipulation
+
+=item Creating and calling an anonymous subroutine in C
 
 =back
 
-=item ENVIRONMENT
+=item SEE ALSO
 
-HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLLIB, PERL5DB, PERL5SHELL
-(specific to the Win32 port), PERL_DEBUG_MSTATS, PERL_DESTRUCT_LEVEL,
-PERL_ROOT (specific to the VMS port), SYS$LOGIN (specific to the VMS port)
+=item AUTHOR
+
+=item DATE
 
 =back
 
-=head2 perlfunc - Perl builtin functions
+=head2 perlutil - utilities packaged with the Perl distribution
 
 =over
 
@@ -1764,152 +3863,61 @@ PERL_ROOT (specific to the VMS port), SYS$LOGIN (specific to the VMS port)
 
 =over
 
-=item Perl Functions by Category
+=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
 
-Functions for SCALARs or strings, Regular expressions and pattern matching,
-Numeric functions, Functions for real @ARRAYs, Functions for list data,
-Functions for real %HASHes, Input and output functions, Functions for fixed
-length data or records, Functions for filehandles, files, or directories,
-Keywords related to the control flow of your perl program, Keywords related
-to scoping, Miscellaneous functions, Functions for processes and process
-groups, Keywords related to perl modules, Keywords related to classes and
-object-orientedness, Low-level socket functions, System V interprocess
-communication functions, Fetching user and group info, Fetching network
-info, Time-related functions, Functions new in perl5, Functions obsoleted
-in perl5
+L<a2p|a2p>, L<s2p|s2p>, L<find2perl|find2perl>
 
-=item Portability
+=item Development
 
-=item Alphabetical Listing of Perl Functions
+L<perlbug|perlbug>, L<h2ph|h2ph>, L<c2ph|c2ph> and L<pstruct|pstruct>,
+L<h2xs|h2xs>, L<dprofpp|dprofpp>, L<perlcc|perlcc>
 
-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, DISCIPLINE, binmode FILEHANDLE, bless REF,CLASSNAME,
-bless REF, caller EXPR, caller, chdir EXPR, chmod LIST, chomp VARIABLE,
-chomp LIST, chomp, chop VARIABLE, chop LIST, chop, chown LIST, chr NUMBER,
-chr, chroot FILENAME, chroot, close FILEHANDLE, close, closedir DIRHANDLE,
-connect SOCKET,NAME, continue BLOCK, cos EXPR, crypt PLAINTEXT,SALT,
-dbmclose HASH, dbmopen HASH,DBNAME,MASK, defined EXPR, defined, delete
-EXPR, die LIST, do BLOCK, do SUBROUTINE(LIST), do EXPR, dump LABEL, dump,
-each HASH, eof FILEHANDLE, eof (), eof, eval EXPR, eval BLOCK, exec LIST,
-exec PROGRAM LIST, exists EXPR, exit EXPR, exp EXPR, exp, fcntl
-FILEHANDLE,FUNCTION,SCALAR, fileno FILEHANDLE, flock FILEHANDLE,OPERATION,
-fork, format, formline PICTURE,LIST, getc FILEHANDLE, getc, getlogin,
-getpeername SOCKET, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam
-NAME, getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname
-NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr
-ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER,
-getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent,
-getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent
-STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent,
-endhostent, endnetent, endprotoent, endservent, getsockname SOCKET,
-getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, goto LABEL,
-goto EXPR, goto &NAME, grep BLOCK LIST, grep EXPR,LIST, hex EXPR, hex,
-import, index STR,SUBSTR,POSITION, index STR,SUBSTR, int EXPR, int, ioctl
-FILEHANDLE,FUNCTION,SCALAR, join EXPR,LIST, keys HASH, kill SIGNAL, LIST,
-last LABEL, last, lc EXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length,
-link OLDFILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, localtime EXPR,
-lock, log EXPR, log, lstat FILEHANDLE, lstat EXPR, lstat, m//, map BLOCK
-LIST, map EXPR,LIST, mkdir FILENAME,MASK, mkdir FILENAME, msgctl
-ID,CMD,ARG, msgget KEY,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, msgsnd
-ID,MSG,FLAGS, my EXPR, my EXPR : ATTRIBUTES, next LABEL, next, no Module
-LIST, oct EXPR, oct, open FILEHANDLE,MODE,LIST, open FILEHANDLE,EXPR, open
-FILEHANDLE, opendir DIRHANDLE,EXPR, ord EXPR, ord, our EXPR, pack
-TEMPLATE,LIST, package, package NAMESPACE, pipe READHANDLE,WRITEHANDLE, pop
-ARRAY, pop, pos SCALAR, pos, print FILEHANDLE LIST, print LIST, print,
-printf FILEHANDLE FORMAT, LIST, printf FORMAT, LIST, prototype FUNCTION,
-push ARRAY,LIST, q/STRING/, qq/STRING/, qr/STRING/, qx/STRING/, qw/STRING/,
-quotemeta EXPR, quotemeta, rand EXPR, rand, read
-FILEHANDLE,SCALAR,LENGTH,OFFSET, read FILEHANDLE,SCALAR,LENGTH, readdir
-DIRHANDLE, readline EXPR, readlink EXPR, readlink, readpipe EXPR, recv
-SOCKET,SCALAR,LENGTH,FLAGS, redo LABEL, redo, ref EXPR, ref, rename
-OLDNAME,NEWNAME, require VERSION, require EXPR, require, reset EXPR, reset,
-return EXPR, return, reverse LIST, rewinddir DIRHANDLE, rindex
-STR,SUBSTR,POSITION, rindex STR,SUBSTR, rmdir FILENAME, rmdir, s///, scalar
-EXPR, seek FILEHANDLE,POSITION,WHENCE, seekdir DIRHANDLE,POS, select
-FILEHANDLE, select, select RBITS,WBITS,EBITS,TIMEOUT, semctl
-ID,SEMNUM,CMD,ARG, semget KEY,NSEMS,FLAGS, semop KEY,OPSTRING, send
-SOCKET,MSG,FLAGS,TO, send SOCKET,MSG,FLAGS, setpgrp PID,PGRP, setpriority
-WHICH,WHO,PRIORITY, setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL, shift ARRAY,
-shift, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, shmread ID,VAR,POS,SIZE,
-shmwrite ID,STRING,POS,SIZE, shutdown SOCKET,HOW, sin EXPR, sin, sleep
-EXPR, sleep, socket SOCKET,DOMAIN,TYPE,PROTOCOL, socketpair
-SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, sort SUBNAME LIST, sort BLOCK LIST,
-sort LIST, splice ARRAY,OFFSET,LENGTH,LIST, splice ARRAY,OFFSET,LENGTH,
-splice ARRAY,OFFSET, splice ARRAY, split /PATTERN/,EXPR,LIMIT, split
-/PATTERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST, sqrt EXPR,
-sqrt, srand EXPR, srand, stat FILEHANDLE, stat EXPR, stat, study SCALAR,
-study, sub BLOCK, sub NAME, sub NAME BLOCK, substr
-EXPR,OFFSET,LENGTH,REPLACEMENT, substr EXPR,OFFSET,LENGTH, substr
-EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall LIST, sysopen
-FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread
-FILEHANDLE,SCALAR,LENGTH,OFFSET, sysread FILEHANDLE,SCALAR,LENGTH, sysseek
-FILEHANDLE,POSITION,WHENCE, system LIST, system PROGRAM LIST, syswrite
-FILEHANDLE,SCALAR,LENGTH,OFFSET, syswrite FILEHANDLE,SCALAR,LENGTH,
-syswrite FILEHANDLE,SCALAR, tell FILEHANDLE, tell, telldir DIRHANDLE, tie
-VARIABLE,CLASSNAME,LIST, tied VARIABLE, time, times, tr///, truncate
-FILEHANDLE,LENGTH, truncate EXPR,LENGTH, uc EXPR, uc, ucfirst EXPR,
-ucfirst, umask EXPR, umask, undef EXPR, undef, unlink LIST, unlink, unpack
-TEMPLATE,EXPR, untie VARIABLE, unshift ARRAY,LIST, use Module VERSION LIST,
-use Module VERSION, use Module LIST, use Module, use VERSION, utime LIST,
-values HASH, vec EXPR,OFFSET,BITS, wait, waitpid PID,FLAGS, wantarray, warn
-LIST, write FILEHANDLE, write EXPR, write, y///
+=item SEE ALSO
 
 =back
 
 =back
 
-=head2 perlvar - Perl predefined variables
+=head2 perlfilter - Source Filters
 
 =over
 
 =item DESCRIPTION
 
-=over
+=item CONCEPTS
 
-=item Predefined Names
+=item USING FILTERS
 
-$ARG, $_, $<I<digits>>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $',
-$LAST_PAREN_MATCH, $+, @LAST_MATCH_END, @+, $MULTILINE_MATCHING, $*,
-input_line_number HANDLE EXPR, $INPUT_LINE_NUMBER, $NR, $,
-input_record_separator HANDLE EXPR, $INPUT_RECORD_SEPARATOR, $RS, $/,
-autoflush HANDLE EXPR, $OUTPUT_AUTOFLUSH, $|, output_field_separator HANDLE
-EXPR, $OUTPUT_FIELD_SEPARATOR, $OFS, $,, output_record_separator HANDLE
-EXPR, $OUTPUT_RECORD_SEPARATOR, $ORS, $\, $LIST_SEPARATOR, $",
-$SUBSCRIPT_SEPARATOR, $SUBSEP, $;, $OFMT, $#, format_page_number HANDLE
-EXPR, $FORMAT_PAGE_NUMBER, $%, format_lines_per_page HANDLE EXPR,
-$FORMAT_LINES_PER_PAGE, $=, format_lines_left HANDLE EXPR,
-$FORMAT_LINES_LEFT, $-, @LAST_MATCH_START, @-, C<$`> is the same as
-C<substr($var, 0, $-[0])>, C<$&> is the same as C<substr($var, $-[0], $+[0]
-- $-[0])>, C<$'> is the same as C<substr($var, $+[0])>, C<$1> is the same
-as C<substr($var, $-[1], $+[1] - $-[1])>, C<$2> is the same as
-C<substr($var, $-[2], $+[2] - $-[2])>, C<$3> is the same as C<substr $var,
-$-[3], $+[3] - $-[3])>, format_name HANDLE EXPR, $FORMAT_NAME, $~,
-format_top_name HANDLE EXPR, $FORMAT_TOP_NAME, $^,
-format_line_break_characters HANDLE EXPR, $FORMAT_LINE_BREAK_CHARACTERS,
-$:, format_formfeed HANDLE EXPR, $FORMAT_FORMFEED, $^L, $ACCUMULATOR, $^A,
-$CHILD_ERROR, $?, $OS_ERROR, $ERRNO, $!, $EXTENDED_OS_ERROR, $^E,
-$EVAL_ERROR, $@, $PROCESS_ID, $PID, $$, $REAL_USER_ID, $UID, $<,
-$EFFECTIVE_USER_ID, $EUID, $>, $REAL_GROUP_ID, $GID, $(,
-$EFFECTIVE_GROUP_ID, $EGID, $), $PROGRAM_NAME, $0, $[, $], $COMPILING, $^C,
-$DEBUGGING, $^D, $SYSTEM_FD_MAX, $^F, $^H, %^H, $INPLACE_EDIT, $^I, $^M,
-$OSNAME, $^O, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
-0x100, 0x200, $LAST_REGEXP_CODE_RESULT, $^R, $EXCEPTIONS_BEING_CAUGHT, $^S,
-$BASETIME, $^T, $PERL_VERSION, $^V, $WARNING, $^W, ${^WARNING_BITS},
-${^WIDE_SYSTEM_CALLS}, $EXECUTABLE_NAME, $^X, $ARGV, @ARGV, @INC, @_, %INC,
-%ENV, $ENV{expr}, %SIG, $SIG{expr}
+=item WRITING A SOURCE FILTER
 
-=item Error Indicators
+=item WRITING A SOURCE FILTER IN C
 
-=item Technical Note on the Syntax of Variable Names
+B<Decryption Filters>
 
-=back
+=item CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE
 
-=item BUGS
+=item WRITING A SOURCE FILTER IN PERL
+
+=item USING CONTEXT: THE DEBUG FILTER
+
+=item CONCLUSION
+
+=item REQUIREMENTS
+
+=item AUTHOR
+
+=item Copyrights
 
 =back
 
-=head2 perlsub - Perl subroutines
+=head2 perldbmfilter - Perl DBM Filters
 
 =over
 
@@ -1917,1993 +3925,2267 @@ ${^WIDE_SYSTEM_CALLS}, $EXECUTABLE_NAME, $^X, $ARGV, @ARGV, @INC, @_, %INC,
 
 =item DESCRIPTION
 
-=over
-
-=item Private Variables via my()
+B<filter_store_key>, B<filter_store_value>, B<filter_fetch_key>,
+B<filter_fetch_value>
 
-=item Persistent Private Variables
+=over
 
-=item Temporary Values via local()
+=item The Filter
 
-=item Lvalue subroutines
+=item An Example -- the NULL termination problem.
 
-=item Passing Symbol Table Entries (typeglobs)
+=item Another Example -- Key is a C int.
 
-=item When to Still Use local()
+=back
 
-1. You need to give a global variable a temporary value, especially $_, 2.
-You need to create a local file or directory handle or a local function, 3.
-You want to temporarily change just one element of an array or hash
+=item SEE ALSO
 
-=item Pass by Reference
+=item AUTHOR
 
-=item Prototypes
+=back
 
-=item Constant Functions
+=head2 perlapi - autogenerated documentation for the perl public API
 
-=item Overriding Built-in Functions
+=over
 
-=item Autoloading
+=item DESCRIPTION
 
-=item Subroutine Attributes
+AvFILL, av_clear, av_extend, av_fetch, av_len, av_make, av_pop, av_push,
+av_shift, av_store, av_undef, av_unshift, bytes_to_utf8, call_argv,
+call_method, call_pv, call_sv, CLASS, Copy, croak, CvSTASH, dMARK,
+dORIGMARK, dSP, dXSARGS, dXSI32, ENTER, eval_pv, eval_sv, EXTEND,
+fbm_compile, fbm_instr, FREETMPS, get_av, get_cv, get_hv, get_sv, GIMME,
+GIMME_V, GvSV, gv_fetchmeth, gv_fetchmethod, gv_fetchmethod_autoload,
+gv_stashpv, gv_stashsv, G_ARRAY, G_DISCARD, G_EVAL, G_NOARGS, G_SCALAR,
+G_VOID, HEf_SVKEY, 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,
+hv_iterkeysv, hv_iternext, hv_iternextsv, hv_iterval, hv_magic, hv_store,
+hv_store_ent, hv_undef, isALNUM, isALPHA, isDIGIT, isLOWER, isSPACE,
+isUPPER, items, ix, LEAVE, looks_like_number, MARK, mg_clear, mg_copy,
+mg_find, mg_free, mg_get, mg_length, mg_magical, mg_set, Move, New, newAV,
+Newc, newCONSTSUB, newHV, newRV_inc, newRV_noinc, NEWSV, newSViv, newSVnv,
+newSVpv, newSVpvf, newSVpvn, newSVrv, newSVsv, newSVuv, newXS, newXSproto,
+Newz, Nullav, Nullch, Nullcv, Nullhv, Nullsv, ORIGMARK, perl_alloc,
+perl_construct, perl_destruct, perl_free, perl_parse, perl_run,
+PL_DBsingle, PL_DBsub, PL_DBtrace, PL_dowarn, PL_modglobal, PL_na,
+PL_sv_no, PL_sv_undef, PL_sv_yes, POPi, POPl, POPn, POPp, POPs, PUSHi,
+PUSHMARK, PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, Renew, Renewc, require_pv,
+RETVAL, Safefree, savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST, strEQ, strGE,
+strGT, strLE, strLT, strNE, strnEQ, strnNE, StructCopy, SvCUR, SvCUR_set,
+SvEND, SvGETMAGIC, SvGROW, SvIOK, SvIOKp, SvIOK_off, SvIOK_on, SvIOK_only,
+SvIV, SvIVX, SvLEN, SvLOCK, SvNIOK, SvNIOKp, SvNIOK_off, SvNOK, SvNOKp,
+SvNOK_off, SvNOK_on, SvNOK_only, SvNV, SvNVX, SvOK, SvOOK, SvPOK, SvPOKp,
+SvPOK_off, SvPOK_on, SvPOK_only, SvPV, SvPVX, SvPV_force, SvPV_nolen,
+SvREFCNT, SvREFCNT_dec, SvREFCNT_inc, SvROK, SvROK_off, SvROK_on, SvRV,
+SvSETMAGIC, SvSetSV, SvSetSV_nosteal, SvSTASH, SvTAINT, SvTAINTED,
+SvTAINTED_off, SvTAINTED_on, SvTRUE, SvTYPE, svtype, SVt_IV, SVt_NV,
+SVt_PV, SVt_PVAV, SVt_PVCV, SVt_PVHV, SVt_PVMG, SvUNLOCK, SvUPGRADE, SvUV,
+SvUVX, sv_2mortal, sv_bless, sv_catpv, sv_catpvf, sv_catpvf_mg, sv_catpvn,
+sv_catpvn_mg, sv_catpv_mg, sv_catsv, sv_catsv_mg, sv_chop, sv_cmp, sv_dec,
+sv_derived_from, sv_eq, sv_grow, sv_inc, sv_insert, sv_isa, sv_isobject,
+sv_len, sv_magic, sv_mortalcopy, sv_newmortal, 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_setsv, sv_setsv_mg, sv_setuv,
+sv_setuv_mg, sv_unref, sv_upgrade, sv_usepvn, sv_usepvn_mg, sv_vcatpvfn,
+sv_vsetpvfn, THIS, toLOWER, toUPPER, U8 *s, utf8_to_bytes, warn, XPUSHi,
+XPUSHn, XPUSHp, XPUSHs, XPUSHu, XS, XSRETURN, XSRETURN_EMPTY, XSRETURN_IV,
+XSRETURN_NO, XSRETURN_NV, XSRETURN_PV, XSRETURN_UNDEF, XSRETURN_YES,
+XST_mIV, XST_mNO, XST_mNV, XST_mPV, XST_mUNDEF, XST_mYES, XS_VERSION,
+XS_VERSION_BOOTCHECK, Zero
 
-=back
+=item AUTHORS
 
 =item SEE ALSO
 
 =back
 
-=head2 perlmod - Perl modules (packages and symbol tables)
+=head2 perlintern - autogenerated documentation of purely B<internal> 
+                Perl functions
 
 =over
 
 =item DESCRIPTION
 
+is_gv_magical
+
+=item AUTHORS
+
+=item SEE ALSO
+
+=back
+
+=head2 perlapio - perl's IO abstraction interface.
+
 =over
 
-=item Packages
+=item SYNOPSIS
 
-=item Symbol Tables
+=item DESCRIPTION
 
-=item Package Constructors and Destructors
+B<PerlIO *>, B<PerlIO_stdin()>, B<PerlIO_stdout()>, B<PerlIO_stderr()>,
+B<PerlIO_open(path, mode)>, B<PerlIO_fdopen(fd,mode)>,
+B<PerlIO_printf(f,fmt,...)>, B<PerlIO_vprintf(f,fmt,a)>,
+B<PerlIO_stdoutf(fmt,...)>, B<PerlIO_read(f,buf,count)>,
+B<PerlIO_write(f,buf,count)>, B<PerlIO_close(f)>, B<PerlIO_puts(f,s)>,
+B<PerlIO_putc(f,c)>, B<PerlIO_ungetc(f,c)>, B<PerlIO_getc(f)>,
+B<PerlIO_eof(f)>, B<PerlIO_error(f)>, B<PerlIO_fileno(f)>,
+B<PerlIO_clearerr(f)>, B<PerlIO_flush(f)>, B<PerlIO_tell(f)>,
+B<PerlIO_seek(f,o,w)>, B<PerlIO_getpos(f,p)>, B<PerlIO_setpos(f,p)>,
+B<PerlIO_rewind(f)>, B<PerlIO_tmpfile()>
 
-=item Perl Classes
+=over
 
-=item Perl Modules
+=item Co-existence with stdio
 
-=back
+B<PerlIO_importFILE(f,flags)>, B<PerlIO_exportFILE(f,flags)>,
+B<PerlIO_findFILE(f)>, B<PerlIO_releaseFILE(p,f)>, B<PerlIO_setlinebuf(f)>,
+B<PerlIO_has_cntptr(f)>, B<PerlIO_get_ptr(f)>, B<PerlIO_get_cnt(f)>,
+B<PerlIO_canset_cnt(f)>, B<PerlIO_fast_gets(f)>,
+B<PerlIO_set_ptrcnt(f,p,c)>, B<PerlIO_set_cnt(f,c)>, B<PerlIO_has_base(f)>,
+B<PerlIO_get_base(f)>, B<PerlIO_get_bufsiz(f)>
 
-=item SEE ALSO
+=back
 
 =back
 
-=head2 perlmodlib - constructing new Perl modules and finding existing ones
+=head2 perltodo - Perl TO-DO List
 
 =over
 
 =item DESCRIPTION
 
-=item THE PERL MODULE LIBRARY
+=item Infrastructure
 
 =over
 
-=item Pragmatic Modules
+=item Mailing list archives
 
-attributes, attrs, autouse, base, blib, bytes, charnames, constant,
-diagnostics, fields, filetest, integer, less, lib, locale, open, ops,
-overload, re, sigtrap, strict, subs, utf8, vars, warnings
+=item Bug tracking system
 
-=item Standard Modules
+=item Regression Tests
 
-AnyDBM_File, AutoLoader, AutoSplit, B, B::Asmdata, B::Assembler, B::Bblock,
-B::Bytecode, B::C, B::CC, B::Debug, B::Deparse, B::Disassembler, B::Lint,
-B::Showlex, B::Stackobj, B::Terse, B::Xref, Benchmark, ByteLoader, CGI,
-CGI::Apache, CGI::Carp, CGI::Cookie, CGI::Fast, CGI::Pretty, CGI::Push,
-CGI::Switch, CPAN, CPAN::FirstTime, CPAN::Nox, Carp, Carp::Heavy,
-Class::Struct, Cwd, DB, DB_File, Devel::SelfStubber, DirHandle, Dumpvalue,
-English, Env, Exporter, Exporter::Heavy, ExtUtils::Command,
-ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtUtils::Liblist,
-ExtUtils::MM_Cygwin, ExtUtils::MM_OS2, ExtUtils::MM_Unix, ExtUtils::MM_VMS,
-ExtUtils::MM_Win32, 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::Functions, File::Spec::Mac, File::Spec::OS2,
-File::Spec::Unix, File::Spec::VMS, File::Spec::Win32, File::Temp,
-File::stat, FileCache, FileHandle, FindBin, Getopt::Long, Getopt::Std,
-I18N::Collate, IO, IPC::Open2, IPC::Open3, Math::BigFloat, Math::BigInt,
-Math::Complex, Math::Trig, NDBM_File, Net::Ping, Net::hostent, Net::netent,
-Net::protoent, Net::servent, O, ODBM_File, Opcode, Pod::Checker, Pod::Find,
-Pod::Html, Pod::InputObjects, Pod::Man, Pod::ParseUtils, Pod::Parser,
-Pod::Plainer, Pod::Select, Pod::Text, Pod::Text::Color, Pod::Text::Termcap,
-Pod::Usage, SDBM_File, Safe, Search::Dict, SelectSaver, SelfLoader, Shell,
-Socket, Symbol, Term::ANSIColor, Term::Cap, Term::Complete, Term::ReadLine,
-Test, Test::Harness, Text::Abbrev, Text::ParseWords, Text::Soundex,
-Text::Wrap, Tie::Array, Tie::Handle, Tie::Hash, Tie::RefHash, Tie::Scalar,
-Tie::SubstrHash, Time::Local, Time::gmtime, Time::localtime, Time::tm,
-UNIVERSAL, User::grent, User::pwent
+Coverage, Regression, __DIE__, suidperl, The 25% slowdown from perl4 to
+perl5
 
-=item Extension Modules
+=back
+
+=item Configure
+
+=over
+
+=item Install HTML
 
 =back
 
-=item CPAN
+=item Perl Language
 
-Language Extensions and Documentation Tools, Development Support, Operating
-System Interfaces, Networking, Device Control (modems) and InterProcess
-Communication, Data Types and Data Type Utilities, Database Interfaces,
-User Interfaces, Interfaces to / Emulations of Other Programming Languages,
-File Names, File Systems and File Locking (see also File Handles), String
-Processing, Language Text Processing, Parsing, and Searching, Option,
-Argument, Parameter, and Configuration File Processing,
-Internationalization and Locale, Authentication, Security, and Encryption,
-World Wide Web, HTML, HTTP, CGI, MIME, Server and Daemon Utilities,
-Archiving and Compression, Images, Pixmap and Bitmap Manipulation, Drawing,
-and Graphing, Mail and Usenet News, Control Flow Utilities (callbacks and
-exceptions etc), File Handle and Input/Output Stream Utilities,
-Miscellaneous Modules, Africa, Asia, Australasia, Central America, Europe,
-North America, South America
+=over
+
+=item our ($var)
+
+=item 64-bit Perl
+
+=item Prototypes
+
+Named prototypes, Indirect objects, Method calls, Context, Scoped subs
 
-=item Modules: Creation, Use, and Abuse
+=back
+
+=item Perl Internals
 
 =over
 
-=item Guidelines for Module Creation
+=item magic_setisa
 
-Do similar modules already exist in some form?, Try to design the new
-module to be easy to extend and reuse, Some simple style guidelines, Select
-what to export, Select a name for the module, Have you got it right?,
-README and other Additional Files, A description of the
-module/package/extension etc, A copyright notice - see below, Prerequisites
-- what else you may need to have, How to build it - possible changes to
-Makefile.PL etc, How to install it, Recent changes in this release,
-especially incompatibilities, Changes / enhancements you plan to make in
-the future, Adding a Copyright Notice, Give the module a
-version/issue/release number, How to release and distribute a module, Take
-care when changing a released module
+=item Garbage Collection
 
-=item Guidelines for Converting Perl 4 Library Scripts into Modules
+=item Reliable signals
 
-There is no requirement to convert anything, Consider the implications,
-Make the most of the opportunity, The pl2pm utility will get you started,
-Adds the standard Module prologue lines, Converts package specifiers from '
-to ::, Converts die(...) to croak(...), Several other minor changes
+Alternate runops() for signal despatch, Figure out how to die() in delayed
+sighandler, Add tests for Thread::Signal, Automatic tests against CPAN
 
-=item Guidelines for Reusing Application Code
+=item Interpolated regex performance bugs
 
-Complete applications rarely belong in the Perl Module Library, Many
-applications contain some Perl code that could be reused, Break-out the
-reusable code into one or more separate module files, Take the opportunity
-to reconsider and redesign the interfaces, In some cases the 'application'
-can then be reduced to a small
+=item Memory leaks from failed eval/regcomp
 
-=back
+=item Make XS easier to use
 
-=item NOTE
+=item Make embedded Perl easier to use
+
+=item Namespace cleanup
+
+=item MULTIPLICITY
+
+=item MacPerl
 
 =back
 
-=head2 perlmodinstall - Installing CPAN Modules
+=item Documentation
 
 =over
 
-=item DESCRIPTION
+=item A clear division into tutorial and reference
 
-=over
+=item Remove the artificial distinction between operators and functions
 
-=item PREAMBLE
+=item More tutorials
 
-B<DECOMPRESS> the file, B<UNPACK> the file into a directory, B<BUILD> the
-module (sometimes unnecessary), B<INSTALL> the module
+Regular expressions, I/O, pack/unpack, Debugging
 
-=back
+=item Include a search tool
 
-=item HEY
+=item Include a locate tool
 
-=item AUTHOR
+=item Separate function manpages by default
 
-=item COPYRIGHT
+=item Users can't find the manpages
+
+=item Install ALL Documentation
+
+=item Outstanding issues to be documented
+
+=item Adapt www.linuxhq.com for Perl
+
+=item Replace man with a perl program
+
+=item Unicode tutorial
 
 =back
 
-=head2 perlfork - Perl's fork() emulation
+=item Modules
 
 =over
 
-=item SYNOPSIS
+=item Update the POSIX extension to conform with the POSIX 1003.1 Edition 2
 
-=item DESCRIPTION
+=item Module versions
 
-=over
+=item New modules
 
-=item Behavior of other Perl features in forked pseudo-processes
+=item Profiler
 
-$$ or $PROCESS_ID, %ENV, chdir() and all other builtins that accept
-filenames, wait() and waitpid(), kill(), exec(), exit(), Open handles to
-files, directories and network sockets
+=item Tie Modules
 
-=item Resource limits
+VecArray, SubstrArray, VirtualArray, ShiftSplice
 
-=item Killing the parent process
+=item Procedural options
 
-=item Lifetime of the parent process and pseudo-processes
+=item RPC
 
-=item CAVEATS AND LIMITATIONS
+=item y2k localtime/gmtime
 
-BEGIN blocks, Open filehandles, Forking pipe open() not yet implemented,
-Global state maintained by XSUBs, Interpreter embedded in larger
-application, Thread-safety of extensions
+=item Export File::Find variables
 
-=back
+=item Ioctl
 
-=item BUGS
+=item Debugger attach/detach
 
-=item AUTHOR
+=item Regular Expression debugger
 
-=item SEE ALSO
+=item Alternative RE Syntax
+
+=item Bundled modules
+
+=item Expect
+
+=item GUI::Native
+
+=item Update semibroken auxiliary tools; h2ph, a2p, etc.
+
+=item POD Converters
+
+=item pod2html
+
+=item Podchecker
 
 =back
 
-=head2 perlform - Perl formats
+=item Tom's Wishes
 
 =over
 
-=item DESCRIPTION
+=item Webperl
 
-=over
+=item Mobile agents
 
-=item Format Variables
+=item POSIX on non-POSIX
+
+=item Portable installations
 
 =back
 
-=item NOTES
+=item Win32 Stuff
 
 =over
 
-=item Footers
+=item Rename new headers to be consistent with the rest
 
-=item Accessing Formatting Internals
+=item Sort out the spawnvp() mess
 
-=back
+=item Work out DLL versioning
 
-=item WARNINGS
+=item Style-check
 
 =back
 
-=head2 perllocale - Perl locale handling (internationalization and
-localization)
+=item Would be nice to have
+
+C<pack "(stuff)*">, Contiguous bitfields in pack/unpack, lexperl, Bundled
+perl preprocessor, Use posix calls internally where possible, format
+BOTTOM, -i rename file only when successfully changed, All ARGV input
+should act like <>, report HANDLE [formats], support in perlmain to rerun
+debugger, lvalue functions
+
+=item Possible pragmas
 
 =over
 
-=item DESCRIPTION
+=item 'less'
 
-=item PREPARING TO USE LOCALES
+=back
 
-=item USING LOCALES
+=item Optimizations
 
 =over
 
-=item The use locale pragma
+=item constant function cache
 
-=item The setlocale function
+=item foreach(reverse...)
 
-=item Finding locales
+=item Cache eval tree
 
-=item LOCALE PROBLEMS
+=item rcatmaybe
 
-=item Temporarily fixing locale problems
+=item Shrink opcode tables
 
-=item Permanently fixing locale problems
+=item Cache hash value
 
-=item Permanently fixing your system's locale configuration
+=item Optimize away @_ where possible
 
-=item Fixing system locale configuration
+=item Optimize sort by { $a <=> $b }
 
-=item The localeconv function
+=item Rewrite regexp parser for better integrated optimization
 
 =back
 
-=item LOCALE CATEGORIES
+=item Vague possibilities
 
-=over
+ref function in list context, make tr/// return histogram in list context?,
+Loop control on do{} et al, Explicit switch statements, compile to real
+threaded code, structured types, Modifiable $1 et al
 
-=item Category LC_COLLATE: Collation
+=item To Do Or Not To Do
 
-=item Category LC_CTYPE: Character Types
+=over
 
-=item Category LC_NUMERIC: Numeric Formatting
+=item Making my() work on "package" variables
 
-=item Category LC_MONETARY: Formatting of monetary amounts
+=item "or" testing defined not truth
 
-=item LC_TIME
+=item "dynamic" lexicals
 
-=item Other categories
+=item "class"-based, rather than package-based "lexicals"
 
 =back
 
-=item SECURITY
+=item Threading
 
-B<Comparison operators> (C<lt>, C<le>, C<ge>, C<gt> and C<cmp>):,
-B<Case-mapping interpolation> (with C<\l>, C<\L>, C<\u> or C<\U>),
-B<Matching operator> (C<m//>):, B<Substitution operator> (C<s///>):,
-B<Output formatting functions> (printf() and write()):, B<Case-mapping
-functions> (lc(), lcfirst(), uc(), ucfirst()):, B<POSIX locale-dependent
-functions> (localeconv(), strcoll(), strftime(), strxfrm()):, B<POSIX
-character class tests> (isalnum(), isalpha(), isdigit(), isgraph(),
-islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit()):
+=over
 
-=item ENVIRONMENT
+=item Modules
 
-PERL_BADLANG, LC_ALL, LANGUAGE, LC_CTYPE, LC_COLLATE, LC_MONETARY,
-LC_NUMERIC, LC_TIME, LANG
+=item Testing
 
-=item NOTES
+=item $AUTOLOAD
+
+=item exit/die
+
+=item External threads
+
+=item Thread::Pool
+
+=item thread-safety
+
+=item Per-thread GVs
+
+=back
+
+=item Compiler
 
 =over
 
-=item Backward compatibility
+=item Optimization
 
-=item I18N:Collate obsolete
+=item Byteperl
 
-=item Sort speed and memory use impacts
+=item Precompiled modules
 
-=item write() and LC_NUMERIC
+=item Executables
 
-=item Freely available locale definitions
+=item Typed lexicals
 
-=item I18n and l10n
+=item Win32
 
-=item An imperfect standard
+=item END blocks
+
+=item _AUTOLOAD
+
+=item comppadlist
+
+=item Cached compilation
 
 =back
 
-=item BUGS
+=item Recently Finished Tasks
 
 =over
 
-=item Broken systems
+=item Figure a way out of $^(capital letter)
 
-=back
+=item Filenames
 
-=item SEE ALSO
+=item Foreign lines
 
-=item HISTORY
+=item Namespace cleanup
+
+=item ISA.pm
+
+=item gettimeofday
+
+=item autocroak?
 
 =back
 
-=head2 perlref - Perl references and nested data structures
+=back
+
+=head2 perlhack - How to hack at the Perl internals
 
 =over
 
-=item NOTE
+=item DESCRIPTION
+
+Does concept match the general goals of Perl?, Where is the
+implementation?, Backwards compatibility, Could it be a module instead?, Is
+the feature generic enough?, Does it potentially introduce new bugs?, Does
+it preclude other desirable features?, Is the implementation robust?, Is
+the implementation generic enough to be portable?, Is there enough
+documentation?, Is there another way to do it?, Does it create too much
+work?, Patches speak louder than words
+
+=item AUTHOR
+
+=back
+
+=head2 perlhist - the Perl history records
+
+=over
 
 =item DESCRIPTION
 
+=item INTRODUCTION
+
+=item THE KEEPERS OF THE PUMPKIN
+
 =over
 
-=item Making References
+=item PUMPKIN?
 
-=item Using References
+=back
 
-=item Symbolic references
+=item THE RECORDS
 
-=item Not-so-symbolic references
+=over
 
-=item Pseudo-hashes: Using an array as a hash
+=item SELECTED RELEASE SIZES
 
-=item Function Templates
+=item SELECTED PATCH SIZES
 
 =back
 
-=item WARNING
-
-=item SEE ALSO
+=item THE KEEPERS OF THE RECORDS
 
 =back
 
-=head2 perlreftut - Mark's very short tutorial about references
+=head2 perldelta - what's new for perl v5.6.0
 
 =over
 
 =item DESCRIPTION
 
-=item Who Needs Complicated Data Structures?
+=item Core Enhancements
 
-=item The Solution
+=over
 
-=item Syntax
+=item Interpreter cloning, threads, and concurrency
 
-=over
+=item Lexically scoped warning categories
 
-=item Making References
+=item Unicode and UTF-8 support
 
-=item Using References
+=item Support for interpolating named characters
 
-=back
+=item "our" declarations
 
-=item An Example
+=item Support for strings represented as a vector of ordinals
 
-=item Arrow Rule
+=item Improved Perl version numbering system
 
-=item Solution
+=item New syntax for declaring subroutine attributes
 
-=item The Rest
+=item File and directory handles can be autovivified
 
-=item Summary
+=item open() with more than two arguments
 
-=item Credits
+=item 64-bit support
 
-=over
+=item Large file support
 
-=item Distribution Conditions
+=item Long doubles
 
-=back
+=item "more bits"
 
-=back
+=item Enhanced support for sort() subroutines
 
-=head2 perldsc - Perl Data Structures Cookbook
+=item C<sort $coderef @foo> allowed
 
-=over
+=item File globbing implemented internally
 
-=item DESCRIPTION
+Support for CHECK blocks
 
-arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes,
-more elaborate constructs
+=item POSIX character class syntax [: :] supported
 
-=item REFERENCES
+Better pseudo-random number generator
+
+=item Improved C<qw//> operator
+
+Better worst-case behavior of hashes
+
+=item pack() format 'Z' supported
+
+=item pack() format modifier '!' supported
+
+=item pack() and unpack() support counted strings
+
+=item Comments in pack() templates
+
+=item Weak references
+
+=item Binary numbers supported
+
+=item Lvalue subroutines
+
+=item Some arrows may be omitted in calls through references
+
+=item Boolean assignment operators are legal lvalues
+
+=item exists() is supported on subroutine names
 
-=item COMMON MISTAKES
+=item exists() and delete() are supported on array elements
 
-=item CAVEAT ON PRECEDENCE
+=item Pseudo-hashes work better
 
-=item WHY YOU SHOULD ALWAYS C<use strict>
+=item Automatic flushing of output buffers
 
-=item DEBUGGING
+=item Better diagnostics on meaningless filehandle operations
 
-=item CODE EXAMPLES
+=item Where possible, buffered data discarded from duped input filehandle
 
-=item ARRAYS OF ARRAYS
+=item eof() has the same old magic as <>
 
-=over
+=item binmode() can be used to set :crlf and :raw modes
 
-=item Declaration of a ARRAY OF ARRAYS
+=item C<-T> filetest recognizes UTF-8 encoded files as "text"
 
-=item Generation of a ARRAY OF ARRAYS
+=item system(), backticks and pipe open now reflect exec() failure
 
-=item Access and Printing of a ARRAY OF ARRAYS
+=item Improved diagnostics
 
-=back
+=item Diagnostics follow STDERR
 
-=item HASHES OF ARRAYS
+More consistent close-on-exec behavior
 
-=over
+=item syswrite() ease-of-use
 
-=item Declaration of a HASH OF ARRAYS
+=item Better syntax checks on parenthesized unary operators
 
-=item Generation of a HASH OF ARRAYS
+=item Bit operators support full native integer width
 
-=item Access and Printing of a HASH OF ARRAYS
+=item Improved security features
 
-=back
+More functional bareword prototype (*)
 
-=item ARRAYS OF HASHES
+=item C<require> and C<do> may be overridden
 
-=over
+=item $^X variables may now have names longer than one character
 
-=item Declaration of a ARRAY OF HASHES
+=item New variable $^C reflects C<-c> switch
 
-=item Generation of a ARRAY OF HASHES
+=item New variable $^V contains Perl version as a string
 
-=item Access and Printing of a ARRAY OF HASHES
+=item Optional Y2K warnings
 
 =back
 
-=item HASHES OF HASHES
+=item Modules and Pragmata
 
 =over
 
-=item Declaration of a HASH OF HASHES
+=item Modules
 
-=item Generation of a HASH OF HASHES
+attributes, B, Benchmark, ByteLoader, constant, charnames, Data::Dumper,
+DB, DB_File, Devel::DProf, Devel::Peek, Dumpvalue, DynaLoader, English,
+Env, Fcntl, File::Compare, File::Find, File::Glob, File::Spec,
+File::Spec::Functions, Getopt::Long, IO, JPL, lib, Math::BigInt,
+Math::Complex, Math::Trig, Pod::Parser, Pod::InputObjects, Pod::Checker,
+podchecker, Pod::ParseUtils, Pod::Find, Pod::Select, podselect, Pod::Usage,
+pod2usage, Pod::Text and Pod::Man, SDBM_File, Sys::Syslog, Sys::Hostname,
+Term::ANSIColor, Time::Local, Win32, XSLoader, DBM Filters
 
-=item Access and Printing of a HASH OF HASHES
+=item Pragmata
 
 =back
 
-=item MORE ELABORATE RECORDS
+=item Utility Changes
 
 =over
 
-=item Declaration of MORE ELABORATE RECORDS
-
-=item Declaration of a HASH OF COMPLEX RECORDS
+=item dprofpp
 
-=item Generation of a HASH OF COMPLEX RECORDS
+=item find2perl
 
-=back
+=item h2xs
 
-=item Database Ties
+=item perlcc
 
-=item SEE ALSO
+=item perldoc
 
-=item AUTHOR
+=item The Perl Debugger
 
 =back
 
-=head2 perllol - Manipulating Arrays of Arrays in Perl
-
-=over
+=item Improved Documentation
 
-=item DESCRIPTION
+perlapi.pod, perlboot.pod, perlcompile.pod, perldbmfilter.pod,
+perldebug.pod, perldebguts.pod, perlfork.pod, perlfilter.pod, perlhack.pod,
+perlintern.pod, perllexwarn.pod, perlnumber.pod, perlopentut.pod,
+perlreftut.pod, perltootc.pod, perltodo.pod, perlunicode.pod
 
-=item Declaration and Access of Arrays of Arrays
+=item Performance enhancements
 
-=item Growing Your Own
+=over
 
-=item Access and Printing
+=item Simple sort() using { $a <=> $b } and the like are optimized
 
-=item Slices
+=item Optimized assignments to lexical variables
 
-=item SEE ALSO
+=item Faster subroutine calls
 
-=item AUTHOR
+delete(), each(), values() and hash iteration are faster
 
 =back
 
-=head2 perlboot - Beginner's Object-Oriented Tutorial
-
-=over
-
-=item DESCRIPTION
+=item Installation and Configuration Improvements
 
 =over
 
-=item If we could talk to the animals...
+=item -Dusethreads means something different
 
-=item Introducing the method invocation arrow
+=item New Configure flags
 
-=item Invoking a barnyard
+=item Threadedness and 64-bitness now more daring
 
-=item The extra parameter of method invocation
+=item Long Doubles
 
-=item Calling a second method to simplify things
+=item -Dusemorebits
 
-=item Inheriting the windpipes
+=item -Duselargefiles
 
-=item A few notes about @ISA
+=item installusrbinperl
 
-=item Overriding the methods
+=item SOCKS support
 
-=item Starting the search from a different place
+=item C<-A> flag
 
-=item The SUPER way of doing things
+=item Enhanced Installation Directories
 
-=item Where we're at so far...
+=back
 
-=item A horse is a horse, of course of course -- or is it?
+=item Platform specific changes
 
-=item Invoking an instance method
+=over
 
-=item Accessing the instance data
+=item Supported platforms
 
-=item How to build a horse
+=item DOS
 
-=item Inheriting the constructor
+=item OS390 (OpenEdition MVS)
 
-=item Making a method work with either classes or instances
+=item VMS
 
-=item Adding parameters to a method
+=item Win32
 
-=item More interesting instances
+=back
 
-=item A horse of a different color
+=item Significant bug fixes
 
-=item Summary
+=over
 
-=back
+=item <HANDLE> on empty files
 
-=item SEE ALSO
+=item C<eval '...'> improvements
 
-=item COPYRIGHT
+=item All compilation errors are true errors
 
-=back
+=item Implicitly closed filehandles are safer
 
-=head2 perltoot - Tom's object-oriented tutorial for perl
+=item Behavior of list slices is more consistent
 
-=over
+=item C<(\$)> prototype and C<$foo{a}>
 
-=item DESCRIPTION
+=item C<goto &sub> and AUTOLOAD
 
-=item Creating a Class
+=item C<-bareword> allowed under C<use integer>
 
-=over
+=item Failures in DESTROY()
 
-=item Object Representation
+=item Locale bugs fixed
 
-=item Class Interface
+=item Memory leaks
 
-=item Constructors and Instance Methods
+=item Spurious subroutine stubs after failed subroutine calls
 
-=item Planning for the Future: Better Constructors
+=item Taint failures under C<-U>
 
-=item Destructors
+=item END blocks and the C<-c> switch
 
-=item Other Object Methods
+=item Potential to leak DATA filehandles
 
 =back
 
-=item Class Data
-
-=over
-
-=item Accessing Class Data
+=item New or Changed Diagnostics
 
-=item Debugging Methods
+(perhaps you forgot to load "%s"?), "%s" variable %s masks earlier
+declaration in same %s, "my sub" not yet implemented, "our" variable %s
+redeclared, '!' allowed only after types %s, / cannot take a count, / must
+be followed by a, A or Z, / must be followed by a*, A* or Z*, / must follow
+a numeric type, /%s/: Unrecognized escape \\%c passed through, /%s/:
+Unrecognized escape \\%c in character class passed through, /%s/ should
+probably be written as "%s", %s() called too early to check prototype, %s
+argument is not a HASH or ARRAY element, %s argument is not a HASH or ARRAY
+element or slice, %s argument is not a subroutine name, %s package
+attribute may clash with future reserved word: %s, (in cleanup) %s, <>
+should be quotes, Attempt to join self, Bad evalled substitution pattern,
+Bad realloc() ignored, Bareword found in conditional, Binary number >
+0b11111111111111111111111111111111 non-portable, Bit vector size > 32
+non-portable, Buffer overflow in prime_env_iter: %s, Can't check filesystem
+of script "%s", Can't declare class for non-scalar %s in "%s", Can't
+declare %s in "%s", Can't ignore signal CHLD, forcing to default, Can't
+modify non-lvalue subroutine call, Can't read CRTL environ, Can't remove
+%s: %s, skipping file, Can't return %s from lvalue subroutine, Can't weaken
+a nonreference, Character class [:%s:] unknown, Character class syntax [%s]
+belongs inside character classes, Constant is not %s reference,
+constant(%s): %s, CORE::%s is not a keyword, defined(@array) is deprecated,
+defined(%hash) is deprecated, Did not produce a valid header, (Did you mean
+"local" instead of "our"?), Document contains no data, entering effective
+%s failed, false [] range "%s" in regexp, Filehandle %s opened only for
+output, flock() on closed filehandle %s, Global symbol "%s" requires
+explicit package name, Hexadecimal number > 0xffffffff non-portable,
+Ill-formed CRTL environ value "%s", Ill-formed message in prime_env_iter:
+|%s|, Illegal binary digit %s, Illegal binary digit %s ignored, Illegal
+number of bits in vec, Integer overflow in %s number, Invalid %s attribute:
+%s, Invalid %s attributes: %s, invalid [] range "%s" in regexp, Invalid
+separator character %s in attribute list, Invalid separator character %s in
+subroutine attribute list, leaving effective %s failed, Lvalue subs
+returning %s not implemented yet, Method %s not permitted, Missing
+%sbrace%s on \N{}, Missing command in piped open, Missing name in "my sub",
+No %s specified for -%c, No package name allowed for variable %s in "our",
+No space allowed after -%c, no UTC offset information; assuming local time
+is UTC, Octal number > 037777777777 non-portable, panic: del_backref,
+panic: kid popen errno read, panic: magic_killbackrefs, Parentheses missing
+around "%s" list, Possible Y2K bug: %s, pragma "attrs" is deprecated, use
+"sub NAME : ATTRS" instead, Premature end of script headers, Repeat count
+in pack overflows, Repeat count in unpack overflows, realloc() of freed
+memory ignored, Reference is already weak, setpgrp can't take arguments,
+Strange *+?{} on zero-length expression, switching effective %s is not
+implemented, This Perl can't reset CRTL environ elements (%s), This Perl
+can't set CRTL environ elements (%s=%s), Too late to run %s block, Unknown
+open() mode '%s', Unknown process %x sent message to prime_env_iter: %s,
+Unrecognized escape \\%c passed through, Unterminated attribute parameter
+in attribute list, Unterminated attribute list, Unterminated attribute
+parameter in subroutine attribute list, Unterminated subroutine attribute
+list, Value of CLI symbol "%s" too long, Version number must be a constant
+number
 
-=item Class Destructors
+=item New tests
 
-=item Documenting the Interface
+=item Incompatible Changes
 
-=back
+=over
 
-=item Aggregation
+=item Perl Source Incompatibilities
 
-=item Inheritance
+CHECK is a new keyword, Treatment of list slices of undef has changed
 
-=over
+=item Format of $English::PERL_VERSION is different
 
-=item Overridden Methods
+Literals of the form C<1.2.3> parse differently, Possibly changed
+pseudo-random number generator, Hashing function for hash keys has changed,
+C<undef> fails on read only values, Close-on-exec bit may be set on pipe
+and socket handles, Writing C<"$$1"> to mean C<"${$}1"> is unsupported,
+delete(), values() and C<\(%h)> operate on aliases to values, not copies,
+vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS, Text of some diagnostic
+output has changed, C<%@> has been removed, Parenthesized not() behaves
+like a list operator, Semantics of bareword prototype C<(*)> have changed
 
-=item Multiple Inheritance
+=item Semantics of bit operators may have changed on 64-bit platforms
 
-=item UNIVERSAL: The Root of All Objects
+=item More builtins taint their results
 
-=back
+=item C Source Incompatibilities
 
-=item Alternate Object Representations
+C<PERL_POLLUTE>, C<PERL_IMPLICIT_CONTEXT>, C<PERL_POLLUTE_MALLOC>
 
-=over
+=item Compatible C Source API Changes
 
-=item Arrays as Objects
+C<PATCHLEVEL> is now C<PERL_VERSION>
 
-=item Closures as Objects
+=item Binary Incompatibilities
 
 =back
 
-=item AUTOLOAD: Proxy Methods
+=item Known Problems
 
 =over
 
-=item Autoloaded Data Methods
+=item Thread test failures
 
-=item Inherited Autoloaded Data Methods
+=item EBCDIC platforms not supported
 
-=back
+=item In 64-bit HP-UX the lib/io_multihomed test may hang
+
+=item NEXTSTEP 3.3 POSIX test failure
 
-=item Metaclassical Tools
+=item Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with
+gcc
 
-=over
+=item UNICOS/mk CC failures during Configure run
 
-=item Class::Struct
+=item Arrow operator and arrays
 
-=item Data Members as Variables
+=item Windows 2000
 
-=item NOTES
+=item Experimental features
 
-=item Object Terminology
+Threads, Unicode, 64-bit support, Lvalue subroutines, Weak references, The
+pseudo-hash data type, The Compiler suite, Internal implementation of file
+globbing, The DB module, The regular expression constructs C<(?{ code })>
+and C<(??{ code })>
 
 =back
 
-=item SEE ALSO
-
-=item AUTHOR AND COPYRIGHT
+=item Obsolete Diagnostics
 
-=item COPYRIGHT
+Character class syntax [: :] is reserved for future extensions, Ill-formed
+logical name |%s| in prime_env_iter, Probable precedence problem on %s,
+regexp too big, Use of "$$<digit>" to mean "${$}<digit>" is deprecated
 
-=over
+=item Reporting Bugs
 
-=item Acknowledgments
+=item SEE ALSO
 
-=back
+=item HISTORY
 
 =back
 
-=head2 perltootc - Tom's OO Tutorial for Class Data in Perl
+=head2 perl56delta, perldelta - what's new for perl v5.6.0
 
 =over
 
 =item DESCRIPTION
 
-=item Class Data as Package Variables
+=item Core Enhancements
 
 =over
 
-=item Putting All Your Eggs in One Basket
-
-=item Inheritance Concerns
+=item Interpreter cloning, threads, and concurrency
 
-=item The Eponymous Meta-Object
+=item Lexically scoped warning categories
 
-=item Indirect References to Class Data
+=item Unicode and UTF-8 support
 
-=item Monadic Classes
+=item Support for interpolating named characters
 
-=item Translucent Attributes
+=item "our" declarations
 
-=back
+=item Support for strings represented as a vector of ordinals
 
-=item Class Data as Lexical Variables
+=item Improved Perl version numbering system
 
-=over
+=item New syntax for declaring subroutine attributes
 
-=item Privacy and Responsibility 
+=item File and directory handles can be autovivified
 
-=item File-Scoped Lexicals
+=item open() with more than two arguments
 
-=item More Inheritance Concerns
+=item 64-bit support
 
-=item Locking the Door and Throwing Away the Key
+=item Large file support
 
-=item Translucency Revisited
+=item Long doubles
 
-=back
+=item "more bits"
 
-=item NOTES
+=item Enhanced support for sort() subroutines
 
-=item SEE ALSO
+=item C<sort $coderef @foo> allowed
 
-=item AUTHOR AND COPYRIGHT
+=item File globbing implemented internally
 
-=item ACKNOWLEDGEMENTS
+=item Support for CHECK blocks
 
-=item HISTORY
+=item POSIX character class syntax [: :] supported
 
-=back
+=item Better pseudo-random number generator
 
-=head2 perlobj - Perl objects
+=item Improved C<qw//> operator
 
-=over
+=item Better worst-case behavior of hashes
 
-=item DESCRIPTION
+=item pack() format 'Z' supported
 
-=over
+=item pack() format modifier '!' supported
 
-=item An Object is Simply a Reference
+=item pack() and unpack() support counted strings
 
-=item A Class is Simply a Package
+=item Comments in pack() templates
 
-=item A Method is Simply a Subroutine
+=item Weak references
 
-=item Method Invocation
+=item Binary numbers supported
 
-=item WARNING
+=item Lvalue subroutines
 
-=item Default UNIVERSAL methods
+=item Some arrows may be omitted in calls through references
 
-isa(CLASS), can(METHOD), VERSION( [NEED] )
+=item Boolean assignment operators are legal lvalues
 
-=item Destructors
+=item exists() is supported on subroutine names
 
-=item Summary
+=item exists() and delete() are supported on array elements
 
-=item Two-Phased Garbage Collection
+=item Pseudo-hashes work better
 
-=back
+=item Automatic flushing of output buffers
 
-=item SEE ALSO
+=item Better diagnostics on meaningless filehandle operations
 
-=back
+=item Where possible, buffered data discarded from duped input filehandle
 
-=head2 perltie - how to hide an object class in a simple variable
+=item eof() has the same old magic as <>
 
-=over
+=item binmode() can be used to set :crlf and :raw modes
 
-=item SYNOPSIS
+=item C<-T> filetest recognizes UTF-8 encoded files as "text"
 
-=item DESCRIPTION
+=item system(), backticks and pipe open now reflect exec() failure
 
-=over
+=item Improved diagnostics
 
-=item Tying Scalars
+=item Diagnostics follow STDERR
 
-TIESCALAR classname, LIST, FETCH this, STORE this, value, DESTROY this
+=item More consistent close-on-exec behavior
 
-=item Tying Arrays
+=item syswrite() ease-of-use
 
-TIEARRAY classname, LIST, FETCH this, index, STORE this, index, value,
-DESTROY this
+=item Better syntax checks on parenthesized unary operators
 
-=item Tying Hashes
+=item Bit operators support full native integer width
 
-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, DESTROY this
+=item Improved security features
 
-=item Tying FileHandles
+=item More functional bareword prototype (*)
 
-TIEHANDLE classname, LIST, WRITE this, LIST, PRINT this, LIST, PRINTF this,
-LIST, READ this, LIST, READLINE this, GETC this, CLOSE this, DESTROY this
+=item C<require> and C<do> may be overridden
 
-=item The C<untie> Gotcha
+=item $^X variables may now have names longer than one character
 
-=back
+=item New variable $^C reflects C<-c> switch
 
-=item SEE ALSO
+=item New variable $^V contains Perl version as a string
 
-=item BUGS
+=item Optional Y2K warnings
 
-=item AUTHOR
+=item Arrays now always interpolate into double-quoted strings
 
 =back
 
-=head2 perlbot - Bag'o Object Tricks (the BOT)
+=item Modules and Pragmata
 
 =over
 
-=item DESCRIPTION
+=item Modules
 
-=item OO SCALING TIPS
+attributes, B, Benchmark, ByteLoader, constant, charnames, Data::Dumper,
+DB, DB_File, Devel::DProf, Devel::Peek, Dumpvalue, DynaLoader, English,
+Env, Fcntl, File::Compare, File::Find, File::Glob, File::Spec,
+File::Spec::Functions, Getopt::Long, IO, JPL, lib, Math::BigInt,
+Math::Complex, Math::Trig, Pod::Parser, Pod::InputObjects, Pod::Checker,
+podchecker, Pod::ParseUtils, Pod::Find, Pod::Select, podselect, Pod::Usage,
+pod2usage, Pod::Text and Pod::Man, SDBM_File, Sys::Syslog, Sys::Hostname,
+Term::ANSIColor, Time::Local, Win32, XSLoader, DBM Filters
 
-=item INSTANCE VARIABLES
+=item Pragmata
 
-=item INSTANCE VARIABLE INHERITANCE
+=back
 
-=item OBJECT RELATIONSHIPS
+=item Utility Changes
 
-=item OVERRIDING SUPERCLASS METHODS
+=over
 
-=item USING RELATIONSHIP WITH SDBM
+=item dprofpp
 
-=item THINKING OF CODE REUSE
+=item find2perl
 
-=item CLASS CONTEXT AND THE OBJECT
+=item h2xs
 
-=item INHERITING A CONSTRUCTOR
+=item perlcc
 
-=item DELEGATION
+=item perldoc
+
+=item The Perl Debugger
 
 =back
 
-=head2 perlipc - Perl interprocess communication (signals, fifos, pipes,
-safe subprocesses, sockets, and semaphores)
+=item Improved Documentation
 
-=over
+perlapi.pod, perlboot.pod, perlcompile.pod, perldbmfilter.pod,
+perldebug.pod, perldebguts.pod, perlfork.pod, perlfilter.pod, perlhack.pod,
+perlintern.pod, perllexwarn.pod, perlnumber.pod, perlopentut.pod,
+perlreftut.pod, perltootc.pod, perltodo.pod, perlunicode.pod
 
-=item DESCRIPTION
+=item Performance enhancements
 
-=item Signals
+=over
 
-=item Named Pipes
+=item Simple sort() using { $a <=> $b } and the like are optimized
 
-=over
+=item Optimized assignments to lexical variables
 
-=item WARNING
+=item Faster subroutine calls
+
+=item delete(), each(), values() and hash iteration are faster
 
 =back
 
-=item Using open() for IPC
+=item Installation and Configuration Improvements
 
 =over
 
-=item Filehandles
+=item -Dusethreads means something different
 
-=item Background Processes
+=item New Configure flags
 
-=item Complete Dissociation of Child from Parent
+=item Threadedness and 64-bitness now more daring
 
-=item Safe Pipe Opens
+=item Long Doubles
 
-=item Bidirectional Communication with Another Process
+=item -Dusemorebits
 
-=item Bidirectional Communication with Yourself
+=item -Duselargefiles
+
+=item installusrbinperl
+
+=item SOCKS support
+
+=item C<-A> flag
+
+=item Enhanced Installation Directories
 
 =back
 
-=item Sockets: Client/Server Communication
+=item Platform specific changes
 
 =over
 
-=item Internet Line Terminators
+=item Supported platforms
 
-=item Internet TCP Clients and Servers
+=item DOS
 
-=item Unix-Domain TCP Clients and Servers
+=item OS390 (OpenEdition MVS)
+
+=item VMS
+
+=item Win32
 
 =back
 
-=item TCP Clients with IO::Socket
+=item Significant bug fixes
 
 =over
 
-=item A Simple Client
+=item <HANDLE> on empty files
 
-C<Proto>, C<PeerAddr>, C<PeerPort>
+=item C<eval '...'> improvements
 
-=item A Webget Client
+=item All compilation errors are true errors
 
-=item Interactive Client with IO::Socket
+=item Implicitly closed filehandles are safer
 
-=back
+=item Behavior of list slices is more consistent
 
-=item TCP Servers with IO::Socket
+=item C<(\$)> prototype and C<$foo{a}>
 
-Proto, LocalPort, Listen, Reuse
+=item C<goto &sub> and AUTOLOAD
 
-=item UDP: Message Passing
+=item C<-bareword> allowed under C<use integer>
 
-=item SysV IPC
+=item Failures in DESTROY()
 
-=item NOTES
+=item Locale bugs fixed
+
+=item Memory leaks
+
+=item Spurious subroutine stubs after failed subroutine calls
 
-=item BUGS
+=item Taint failures under C<-U>
 
-=item AUTHOR
+=item END blocks and the C<-c> switch
 
-=item SEE ALSO
+=item Potential to leak DATA filehandles
 
 =back
 
-=head2 perldbmfilter - Perl DBM Filters
-
-=over
+=item New or Changed Diagnostics
 
-=item SYNOPSIS
+"%s" variable %s masks earlier declaration in same %s, "my sub" not yet
+implemented, "our" variable %s redeclared, '!' allowed only after types %s,
+/ cannot take a count, / must be followed by a, A or Z, / must be followed
+by a*, A* or Z*, / must follow a numeric type, /%s/: Unrecognized escape
+\\%c passed through, /%s/: Unrecognized escape \\%c in character class
+passed through, /%s/ should probably be written as "%s", %s() called too
+early to check prototype, %s argument is not a HASH or ARRAY element, %s
+argument is not a HASH or ARRAY element or slice, %s argument is not a
+subroutine name, %s package attribute may clash with future reserved word:
+%s, (in cleanup) %s, <> should be quotes, Attempt to join self, Bad evalled
+substitution pattern, Bad realloc() ignored, Bareword found in conditional,
+Binary number > 0b11111111111111111111111111111111 non-portable, Bit vector
+size > 32 non-portable, Buffer overflow in prime_env_iter: %s, Can't check
+filesystem of script "%s", Can't declare class for non-scalar %s in "%s",
+Can't declare %s in "%s", Can't ignore signal CHLD, forcing to default,
+Can't modify non-lvalue subroutine call, Can't read CRTL environ, Can't
+remove %s: %s, skipping file, Can't return %s from lvalue subroutine, Can't
+weaken a nonreference, Character class [:%s:] unknown, Character class
+syntax [%s] belongs inside character classes, Constant is not %s reference,
+constant(%s): %s, CORE::%s is not a keyword, defined(@array) is deprecated,
+defined(%hash) is deprecated, Did not produce a valid header, (Did you mean
+"local" instead of "our"?), Document contains no data, entering effective
+%s failed, false [] range "%s" in regexp, Filehandle %s opened only for
+output, flock() on closed filehandle %s, Global symbol "%s" requires
+explicit package name, Hexadecimal number > 0xffffffff non-portable,
+Ill-formed CRTL environ value "%s", Ill-formed message in prime_env_iter:
+|%s|, Illegal binary digit %s, Illegal binary digit %s ignored, Illegal
+number of bits in vec, Integer overflow in %s number, Invalid %s attribute:
+%s, Invalid %s attributes: %s, invalid [] range "%s" in regexp, Invalid
+separator character %s in attribute list, Invalid separator character %s in
+subroutine attribute list, leaving effective %s failed, Lvalue subs
+returning %s not implemented yet, Method %s not permitted, Missing
+%sbrace%s on \N{}, Missing command in piped open, Missing name in "my sub",
+No %s specified for -%c, No package name allowed for variable %s in "our",
+No space allowed after -%c, no UTC offset information; assuming local time
+is UTC, Octal number > 037777777777 non-portable, panic: del_backref,
+panic: kid popen errno read, panic: magic_killbackrefs, Parentheses missing
+around "%s" list, Possible unintended interpolation of %s in string,
+Possible Y2K bug: %s, pragma "attrs" is deprecated, use "sub NAME : ATTRS"
+instead, Premature end of script headers, Repeat count in pack overflows,
+Repeat count in unpack overflows, realloc() of freed memory ignored,
+Reference is already weak, setpgrp can't take arguments, Strange *+?{} on
+zero-length expression, switching effective %s is not implemented, This
+Perl can't reset CRTL environ elements (%s), This Perl can't set CRTL
+environ elements (%s=%s), Too late to run %s block, Unknown open() mode
+'%s', Unknown process %x sent message to prime_env_iter: %s, Unrecognized
+escape \\%c passed through, Unterminated attribute parameter in attribute
+list, Unterminated attribute list, Unterminated attribute parameter in
+subroutine attribute list, Unterminated subroutine attribute list, Value of
+CLI symbol "%s" too long, Version number must be a constant number
 
-=item DESCRIPTION
+=item New tests
 
-B<filter_store_key>, B<filter_store_value>, B<filter_fetch_key>,
-B<filter_fetch_value>
+=item Incompatible Changes
 
 =over
 
-=item The Filter
-
-=item An Example -- the NULL termination problem.
-
-=item Another Example -- Key is a C int.
+=item Perl Source Incompatibilities
 
-=back
+CHECK is a new keyword, Treatment of list slices of undef has changed,
+Format of $English::PERL_VERSION is different, Literals of the form
+C<1.2.3> parse differently, Possibly changed pseudo-random number
+generator, Hashing function for hash keys has changed, C<undef> fails on
+read only values, Close-on-exec bit may be set on pipe and socket handles,
+Writing C<"$$1"> to mean C<"${$}1"> is unsupported, delete(), values() and
+C<\(%h)> operate on aliases to values, not copies, vec(EXPR,OFFSET,BITS)
+enforces powers-of-two BITS, Text of some diagnostic output has changed,
+C<%@> has been removed, Parenthesized not() behaves like a list operator,
+Semantics of bareword prototype C<(*)> have changed, Semantics of bit
+operators may have changed on 64-bit platforms, More builtins taint their
+results
 
-=item SEE ALSO
+=item C Source Incompatibilities
 
-=item AUTHOR
+C<PERL_POLLUTE>, C<PERL_IMPLICIT_CONTEXT>, C<PERL_POLLUTE_MALLOC>
 
-=back
+=item Compatible C Source API Changes
 
-=head2 perldebug - Perl debugging
+C<PATCHLEVEL> is now C<PERL_VERSION>
 
-=over
+=item Binary Incompatibilities
 
-=item DESCRIPTION
+=back
 
-=item The Perl Debugger
+=item Known Problems
 
 =over
 
-=item Debugger Commands
-
-h [command], p expr, x expr, V [pkg [vars]], X [vars], T, s [expr], n
-[expr], r, <CR>, c [line|sub], l, l min+incr, l min-max, l line, l subname,
--, w [line], f filename, /pattern/, ?pattern?, L, S [[!]regex], t, t expr,
-b [line] [condition], b subname [condition], b postpone subname
-[condition], b load filename, b compile subname, d [line], D, a [line]
-command, a [line], A, W expr, W, O booloption .., O anyoption? .., O
-option=value .., < ?, < [ command ], << command, > ?, > command, >>
-command, { ?, { [ command ], {{ command, ! number, ! -number, ! pattern, !!
-cmd, H -number, q or ^D, R, |dbcmd, ||dbcmd, command, m expr, man [manpage]
-
-=item Configurable Options
+=item Thread test failures
 
-C<recallCommand>, C<ShellBang>, C<pager>, C<tkRunning>, C<signalLevel>,
-C<warnLevel>, C<dieLevel>, C<AutoTrace>, C<LineInfo>, C<inhibit_exit>,
-C<PrintRet>, C<ornaments>, C<frame>, C<maxTraceLen>, C<arrayDepth>,
-C<hashDepth>, C<compactDump>, C<veryCompact>, C<globPrint>, C<DumpDBFiles>,
-C<DumpPackages>, C<DumpReused>, C<quote>, C<HighBit>, C<undefPrint>,
-C<UsageOnly>, C<TTY>, C<noTTY>, C<ReadLine>, C<NonStop>
+=item EBCDIC platforms not supported
 
-=item Debugger input/output
+=item In 64-bit HP-UX the lib/io_multihomed test may hang
 
-Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame
-listing
+=item NEXTSTEP 3.3 POSIX test failure
 
-=item Debugging compile-time statements
+=item Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with
+gcc
 
-=item Debugger Customization
+=item UNICOS/mk CC failures during Configure run
 
-=item Readline Support
+=item Arrow operator and arrays
 
-=item Editor Support for Debugging
+=item Experimental features
 
-=item The Perl Profiler
+Threads, Unicode, 64-bit support, Lvalue subroutines, Weak references, The
+pseudo-hash data type, The Compiler suite, Internal implementation of file
+globbing, The DB module, The regular expression constructs C<(?{ code })>
+and C<(??{ code })>
 
 =back
 
-=item Debugging regular expressions
+=item Obsolete Diagnostics
 
-=item Debugging memory usage
+Character class syntax [: :] is reserved for future extensions, Ill-formed
+logical name |%s| in prime_env_iter, In string, @%s now must be written as
+\@%s, Probable precedence problem on %s, regexp too big, Use of "$$<digit>"
+to mean "${$}<digit>" is deprecated
+
+=item Reporting Bugs
 
 =item SEE ALSO
 
-=item BUGS
+=item HISTORY
 
 =back
 
-=head2 perlnumber - semantics of numbers and numeric operations in Perl
+=head2 perl5005delta, perldelta - what's new for perl5.005
 
 =over
 
-=item SYNOPSIS
-
 =item DESCRIPTION
 
-=item Storing numbers
-
-=item Numeric operators and numeric conversions
+=item About the new versioning system
 
-=item Flavors of Perl numeric operations
+=item Incompatible Changes
 
-Arithmetic operators except, C<no integer>, Arithmetic operators except,
-C<use integer>, Bitwise operators, C<no integer>, Bitwise operators, C<use
-integer>, Operators which expect an integer, Operators which expect a
-string
+=over
 
-=item AUTHOR
+=item WARNING: This version is not binary compatible with Perl 5.004.
 
-=item SEE ALSO
+=item Default installation structure has changed
 
-=back
+=item Perl Source Compatibility
 
-=head2 perldebguts - Guts of Perl debugging 
+=item C Source Compatibility
 
-=over
+Core sources now require ANSI C compiler, All Perl global variables must
+now be referenced with an explicit prefix, Enabling threads has source
+compatibility issues
 
-=item DESCRIPTION
+=item Binary Compatibility
 
-=item Debugger Internals
+=item Security fixes may affect compatibility
 
-=over
+=item Relaxed new mandatory warnings introduced in 5.004
 
-=item Writing Your Own Debugger
+=item Licensing
 
 =back
 
-=item Frame Listing Output Examples
-
-=item Debugging regular expressions
+=item Core Changes
 
 =over
 
-=item Compile-time output
+=item Threads
 
-C<anchored> I<STRING> C<at> I<POS>, C<floating> I<STRING> C<at>
-I<POS1..POS2>, C<matching floating/anchored>, C<minlen>, C<stclass>
-I<TYPE>, C<noscan>, C<isall>, C<GPOS>, C<plus>, C<implicit>, C<with eval>,
-C<anchored(TYPE)>
+=item Compiler
 
-=item Types of nodes
+=item Regular Expressions
 
-=item Run-time output
+Many new and improved optimizations, Many bug fixes, New regular expression
+constructs, New operator for precompiled regular expressions, Other
+improvements, Incompatible changes
 
-=back
+=item  Improved malloc()
 
-=item Debugging Perl memory usage
+=item Quicksort is internally implemented
 
-=over
+=item Reliable signals
 
-=item Using C<$ENV{PERL_DEBUG_MSTATS}>
+=item Reliable stack pointers
 
-C<buckets SMALLEST(APPROX)..GREATEST(APPROX)>, Free/Used, C<Total sbrk():
-SBRKed/SBRKs:CONTINUOUS>, C<pad: 0>, C<heads: 2192>, C<chain: 0>, C<tail:
-6144>
+=item More generous treatment of carriage returns
 
-=item Example of using B<-DL> switch
+=item Memory leaks
 
-C<717>, C<002>, C<054>, C<602>, C<702>, C<704>
+=item Better support for multiple interpreters
 
-=item B<-DL> details
+=item Behavior of local() on array and hash elements is now well-defined
 
-C<!!!>, C<!!>, C<!>
+=item C<%!> is transparently tied to the L<Errno> module
 
-=item Limitations of B<-DL> statistics
+=item Pseudo-hashes are supported
 
-=back
+=item C<EXPR foreach EXPR> is supported
 
-=item SEE ALSO
+=item Keywords can be globally overridden
 
-=back
+=item C<$^E> is meaningful on Win32
 
-=head2 perldiag - various Perl diagnostics
+=item C<foreach (1..1000000)> optimized
 
-=over
+=item C<Foo::> can be used as implicitly quoted package name
 
-=item DESCRIPTION
+=item C<exists $Foo::{Bar::}> tests existence of a package
 
-=back
+=item Better locale support
 
-=head2 perlsec - Perl security
+=item Experimental support for 64-bit platforms
 
-=over
+=item prototype() returns useful results on builtins
 
-=item DESCRIPTION
+=item Extended support for exception handling
 
-=over
+=item Re-blessing in DESTROY() supported for chaining DESTROY() methods
 
-=item Laundering and Detecting Tainted Data
+=item All C<printf> format conversions are handled internally
 
-=item Switches On the "#!" Line
+=item New C<INIT> keyword
 
-=item Cleaning Up Your Path
+=item New C<lock> keyword
 
-=item Security Bugs
+=item New C<qr//> operator
 
-=item Protecting Your Programs
+=item C<our> is now a reserved word
 
-=back
+=item Tied arrays are now fully supported
 
-=item SEE ALSO
+=item Tied handles support is better
+
+=item 4th argument to substr
+
+=item Negative LENGTH argument to splice
+
+=item Magic lvalues are now more magical
+
+=item <> now reads in records
 
 =back
 
-=head2 perltrap - Perl traps for the unwary
+=item Supported Platforms
 
 =over
 
-=item DESCRIPTION
+=item New Platforms
 
-=over
+=item Changes in existing support
 
-=item Awk Traps
+=back
 
-=item C Traps
+=item Modules and Pragmata
 
-=item Sed Traps
+=over
 
-=item Shell Traps
+=item New Modules
 
-=item Perl Traps
+B, Data::Dumper, Dumpvalue, Errno, File::Spec, ExtUtils::Installed,
+ExtUtils::Packlist, Fatal, IPC::SysV, Test, Tie::Array, Tie::Handle,
+Thread, attrs, fields, re
 
-=item Perl4 to Perl5 Traps
+=item Changes in existing modules
 
-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
+Benchmark, Carp, CGI, Fcntl, Math::Complex, Math::Trig, POSIX, DB_File,
+MakeMaker, CPAN, Cwd, Benchmark
 
-=item Discontinuance, Deprecation, and BugFix traps
+=back
 
-Discontinuance, Deprecation, BugFix, Discontinuance, Discontinuance,
-Discontinuance, BugFix, Discontinuance, Discontinuance, BugFix,
-Discontinuance, Deprecation, Discontinuance, Discontinuance
+=item Utility Changes
 
-=item Parsing Traps
+=item Documentation Changes
+
+=item New Diagnostics
+
+Ambiguous call resolved as CORE::%s(), qualify as such or use &, Bad index
+while coercing array into hash, Bareword "%s" refers to nonexistent
+package, Can't call method "%s" on an undefined value, Can't check
+filesystem of script "%s" for nosuid, Can't coerce array into hash, Can't
+goto subroutine from an eval-string, Can't localize pseudo-hash element,
+Can't use %%! because Errno.pm is not available, Cannot find an opnumber
+for "%s", Character class syntax [. .] is reserved for future extensions,
+Character class syntax [: :] is reserved for future extensions, Character
+class syntax [= =] is reserved for future extensions, %s: Eval-group in
+insecure regular expression, %s: Eval-group not allowed, use re 'eval', %s:
+Eval-group not allowed at run time, Explicit blessing to '' (assuming
+package main), Illegal hex digit ignored, No such array field, No such
+field "%s" in variable %s of type %s, Out of memory during ridiculously
+large request, Range iterator outside integer range, Recursive inheritance
+detected while looking for method '%s' in package '%s', Reference found
+where even-sized list expected, Undefined value assigned to typeglob, Use
+of reserved word "%s" is deprecated, perl: warning: Setting locale failed
 
-Parsing, Parsing, Parsing, Parsing
+=item Obsolete Diagnostics
 
-=item Numerical Traps
+Can't mktemp(), Can't write to temp file for B<-e>: %s, Cannot open
+temporary file, regexp too big
 
-Numerical, Numerical, Numerical, Bitwise string ops
+=item Configuration Changes
 
-=item General data type traps
+=item BUGS
 
-(Arrays), (Arrays), (Hashes), (Globs), (Globs), (Scalar String),
-(Constants), (Scalars), (Variable Suicide)
+=item SEE ALSO
 
-=item Context Traps - scalar, list contexts
+=item HISTORY
 
-(list context), (scalar context), (scalar context), (list, builtin)
+=back
 
-=item Precedence Traps
+=head2 perl5004delta, perldelta - what's new for perl5.004
 
-Precedence, Precedence, Precedence, Precedence, Precedence, Precedence,
-Precedence
+=over
 
-=item General Regular Expression Traps using s///, etc.
+=item DESCRIPTION
 
-Regular Expression, Regular Expression, Regular Expression, Regular
-Expression, Regular Expression, Regular Expression, Regular Expression,
-Regular Expression
+=item Supported Environments
 
-=item Subroutine, Signal, Sorting Traps
+=item Core Changes
 
-(Signals), (Sort Subroutine), warn() won't let you specify a filehandle
+=over
 
-=item OS Traps
+=item List assignment to %ENV works
 
-(SysV), (SysV)
+=item "Can't locate Foo.pm in @INC" error now lists @INC
 
-=item Interpolation Traps
+=item Compilation option: Binary compatibility with 5.003
 
-Interpolation, Interpolation, Interpolation, Interpolation, Interpolation,
-Interpolation, Interpolation, Interpolation, Interpolation
+=item $PERL5OPT environment variable
 
-=item DBM Traps
+=item Limitations on B<-M>, B<-m>, and B<-T> options
 
-DBM, DBM
+=item More precise warnings
 
-=item Unclassified Traps
+=item Deprecated: Inherited C<AUTOLOAD> for non-methods
 
-C<require>/C<do> trap using returned value, C<split> on empty string with
-LIMIT specified
+=item Previously deprecated %OVERLOAD is no longer usable
 
-=back
+=item Subroutine arguments created only when they're modified
 
-=back
+=item Group vector changeable with C<$)>
 
-=head2 perlport - Writing portable Perl
+=item Fixed parsing of $$<digit>, &$<digit>, etc.
 
-=over
+=item Fixed localization of $<digit>, $&, etc.
 
-=item DESCRIPTION
+=item No resetting of $. on implicit close
 
-Not all Perl programs have to be portable, Nearly all of Perl already I<is>
-portable
+=item C<wantarray> may return undef
 
-=item ISSUES
+=item C<eval EXPR> determines value of EXPR in scalar context
 
-=over
+=item Changes to tainting checks
 
-=item Newlines
+No glob() or <*>, No spawning if tainted $CDPATH, $ENV, $BASH_ENV, No
+spawning if tainted $TERM doesn't look like a terminal name
 
-=item Numbers endianness and Width
+=item New Opcode module and revised Safe module
 
-=item Files and Filesystems
+=item Embedding improvements
 
-=item System Interaction
+=item Internal change: FileHandle class based on IO::* classes
 
-=item Interprocess Communication (IPC)
+=item Internal change: PerlIO abstraction interface
 
-=item External Subroutines (XS)
+=item New and changed syntax
 
-=item Standard Modules
+$coderef->(PARAMS)
 
-=item Time and Date
+=item New and changed builtin constants
 
-=item Character sets and character encoding
+__PACKAGE__
 
-=item Internationalisation
+=item New and changed builtin variables
 
-=item System Resources
+$^E, $^H, $^M
 
-=item Security
+=item New and changed builtin functions
 
-=item Style
+delete on slices, flock, printf and sprintf, keys as an lvalue, my() in
+Control Structures, pack() and unpack(), sysseek(), use VERSION, use Module
+VERSION LIST, prototype(FUNCTION), srand, $_ as Default, C<m//gc> does not
+reset search position on failure, C<m//x> ignores whitespace before ?*+{},
+nested C<sub{}> closures work now, formats work right on changing lexicals
 
-=back
+=item New builtin methods
 
-=item CPAN Testers
+isa(CLASS), can(METHOD), VERSION( [NEED] )
 
-Mailing list: cpan-testers@perl.org, Testing results:
-http://testers.cpan.org/
+=item TIEHANDLE now supported
 
-=item PLATFORMS
+TIEHANDLE classname, LIST, PRINT this, LIST, PRINTF this, LIST, READ this
+LIST, READLINE this, GETC this, DESTROY this
 
-=over
+=item Malloc enhancements
 
-=item Unix
+-DPERL_EMERGENCY_SBRK, -DPACK_MALLOC, -DTWO_POT_OPTIMIZE
 
-=item DOS and Derivatives
+=item Miscellaneous efficiency enhancements
 
-Build instructions for OS/2, L<perlos2>
+=back
 
-=item S<Mac OS>
+=item Support for More Operating Systems
 
-=item VMS
+=over
 
-=item VOS
+=item Win32
 
-=item EBCDIC Platforms
+=item Plan 9
 
-=item Acorn RISC OS
+=item QNX
 
-=item Other perls
+=item AmigaOS
 
 =back
 
-=item FUNCTION IMPLEMENTATIONS
+=item Pragmata
+
+use autouse MODULE => qw(sub1 sub2 sub3), use blib, use blib 'dir', use
+constant NAME => VALUE, use locale, use ops, use vmsish
+
+=item Modules
 
 =over
 
-=item Alphabetical Listing of Perl Functions
+=item Required Updates
 
--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, 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, setpwent,
-setgrent, 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,
-shmread ID,VAR,POS,SIZE, shmwrite ID,STRING,POS,SIZE, socketpair
-SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, stat FILEHANDLE, stat EXPR, stat,
-symlink OLDFILE,NEWFILE, syscall LIST, sysopen
-FILEHANDLE,FILENAME,MODE,PERMS, system LIST, times, truncate
-FILEHANDLE,LENGTH, truncate EXPR,LENGTH, umask EXPR, umask, utime LIST,
-wait, waitpid PID,FLAGS
+=item Installation directories
 
-=back
+=item Module information summary
 
-=item CHANGES
+=item Fcntl
 
-v1.47, 22 March 2000, v1.46, 12 February 2000, v1.45, 20 December 1999,
-v1.44, 19 July 1999, v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May
-1999, v1.40, 11 April 1999, v1.39, 11 February 1999, v1.38, 31 December
-1998, v1.37, 19 December 1998, v1.36, 9 September 1998, v1.35, 13 August
-1998, v1.33, 06 August 1998, v1.32, 05 August 1998, v1.30, 03 August 1998,
-v1.23, 10 July 1998
+=item IO
 
-=item Supported Platforms
+=item Math::Complex
 
-=item SEE ALSO
+=item Math::Trig
 
-=item AUTHORS / CONTRIBUTORS
+=item DB_File
 
-=item VERSION
+=item Net::Ping
+
+=item Object-oriented overrides for builtin operators
 
 =back
 
-=head2 perlstyle - Perl style guide
+=item Utility Changes
 
 =over
 
-=item DESCRIPTION
-
-=back
+=item pod2html
 
-=head2 perlpod - plain old documentation
+Sends converted HTML to standard output
 
-=over
+=item xsubpp
 
-=item DESCRIPTION
+C<void> XSUBs now default to returning nothing
 
-=over
+=back
 
-=item Verbatim Paragraph
+=item C Language API Changes
 
-=item Command Paragraph
+C<gv_fetchmethod> and C<perl_call_sv>, C<perl_eval_pv>, Extended API for
+manipulating hashes
 
-=item Ordinary Block of Text
+=item Documentation Changes
 
-=item The Intent
+L<perldelta>, L<perlfaq>, L<perllocale>, L<perltoot>, L<perlapio>,
+L<perlmodlib>, L<perldebug>, L<perlsec>
 
-=item Embedding Pods in Perl Modules
+=item New Diagnostics
 
-=item Common Pod Pitfalls
+"my" variable %s masks earlier declaration in same scope, %s argument is
+not a HASH element or slice, Allocation too large: %lx, Allocation too
+large, Applying %s to %s will act on scalar(%s), Attempt to free
+nonexistent shared string, Attempt to use reference as lvalue in substr,
+Bareword "%s" refers to nonexistent package, Can't redefine active sort
+subroutine %s, Can't use bareword ("%s") as %s ref while "strict refs" in
+use, Cannot resolve method `%s' overloading `%s' in package `%s', Constant
+subroutine %s redefined, Constant subroutine %s undefined, Copy method did
+not return a reference, Died, Exiting pseudo-block via %s, Identifier too
+long, Illegal character %s (carriage return), Illegal switch in PERL5OPT:
+%s, Integer overflow in hex number, Integer overflow in octal number,
+internal error: glob failed, Invalid conversion in %s: "%s", Invalid type
+in pack: '%s', Invalid type in unpack: '%s', Name "%s::%s" used only once:
+possible typo, Null picture in formline, Offset outside string, Out of
+memory!, Out of memory during request for %s, panic: frexp, Possible
+attempt to put comments in qw() list, Possible attempt to separate words
+with commas, Scalar value @%s{%s} better written as $%s{%s}, Stub found
+while resolving method `%s' overloading `%s' in package `%s', Too late for
+"B<-T>" option, untie attempted while %d inner references still exist,
+Unrecognized character %s, Unsupported function fork, Use of "$$<digit>" to
+mean "${$}<digit>" is deprecated, Value of %s can be "0"; test with
+defined(), Variable "%s" may be unavailable, Variable "%s" will not stay
+shared, Warning: something's wrong, Ill-formed logical name |%s| in
+prime_env_iter, Got an error from DosAllocMem, Malformed PERLLIB_PREFIX,
+PERL_SH_DIR too long, Process terminated by SIG%s
 
-=back
+=item BUGS
 
 =item SEE ALSO
 
-=item AUTHOR
+=item HISTORY
 
 =back
 
-=head2 perlbook - Perl book information
+=head2 perlamiga - Perl under Amiga OS (possibly very outdated information)
 
 =over
 
-=item DESCRIPTION
+=item SYNOPSIS
 
 =back
 
-=head2 perlembed - how to embed perl in your C program
-
 =over
 
 =item DESCRIPTION
 
 =over
 
-=item PREAMBLE
+=item Prerequisites
 
-B<Use C from Perl?>, B<Use a Unix program from Perl?>, B<Use Perl from
-Perl?>, B<Use C from C?>, B<Use Perl from C?>
+B<Unix emulation for AmigaOS: ixemul.library>, B<Version of Amiga OS>
 
-=item ROADMAP
+=item Starting Perl programs under AmigaOS
 
-=item Compiling your C program
+=item Shortcomings of Perl under AmigaOS
 
-=item Adding a Perl interpreter to your C program
+fork(), some features of the UNIX filesystem regarding link count and file
+dates, inplace operation (the -i switch) without backup file, umask()
+works, but the correct permissions are only set when the file is      
+finally close()d
 
-=item Calling a Perl subroutine from your C program
+=back
 
-=item Evaluating a Perl statement from your C program
+=item INSTALLATION
 
-=item Performing Perl pattern matches and substitutions from your C program
+=item Accessing documentation
 
-=item Fiddling with the Perl stack from your C program
+=over
 
-=item Maintaining a persistent interpreter
+=item Manpages
 
-=item Maintaining multiple interpreter instances
+=item B<HTML>
 
-=item Using Perl modules, which themselves use C libraries, from your C
-program
+=item B<GNU> C<info> files
+
+=item C<LaTeX> docs
 
 =back
 
-=item Embedding Perl under Win32
+=item BUILD
 
-=item MORAL
+=over
+
+=item Prerequisites
+
+=item Getting the perl source
+
+=item Making
+
+=item Testing
+
+=item Installing the built perl
+
+=back
 
 =item AUTHOR
 
-=item COPYRIGHT
+=item SEE ALSO
 
 =back
 
-=head2 perlapio - perl's IO abstraction interface.
+=head2 perlcygwin, README.cygwin - Perl for Cygwin
 
 =over
 
 =item SYNOPSIS
 
-=item DESCRIPTION
-
-B<PerlIO *>, B<PerlIO_stdin()>, B<PerlIO_stdout()>, B<PerlIO_stderr()>,
-B<PerlIO_open(path, mode)>, B<PerlIO_fdopen(fd,mode)>,
-B<PerlIO_printf(f,fmt,...)>, B<PerlIO_vprintf(f,fmt,a)>,
-B<PerlIO_stdoutf(fmt,...)>, B<PerlIO_read(f,buf,count)>,
-B<PerlIO_write(f,buf,count)>, B<PerlIO_close(f)>, B<PerlIO_puts(f,s)>,
-B<PerlIO_putc(f,c)>, B<PerlIO_ungetc(f,c)>, B<PerlIO_getc(f)>,
-B<PerlIO_eof(f)>, B<PerlIO_error(f)>, B<PerlIO_fileno(f)>,
-B<PerlIO_clearerr(f)>, B<PerlIO_flush(f)>, B<PerlIO_tell(f)>,
-B<PerlIO_seek(f,o,w)>, B<PerlIO_getpos(f,p)>, B<PerlIO_setpos(f,p)>,
-B<PerlIO_rewind(f)>, B<PerlIO_tmpfile()>
+=item PREREQUISITES
 
 =over
 
-=item Co-existence with stdio
+=item Cygwin = GNU+Cygnus+Windows (Don't leave UNIX without it)
 
-B<PerlIO_importFILE(f,flags)>, B<PerlIO_exportFILE(f,flags)>,
-B<PerlIO_findFILE(f)>, B<PerlIO_releaseFILE(p,f)>, B<PerlIO_setlinebuf(f)>,
-B<PerlIO_has_cntptr(f)>, B<PerlIO_get_ptr(f)>, B<PerlIO_get_cnt(f)>,
-B<PerlIO_canset_cnt(f)>, B<PerlIO_fast_gets(f)>,
-B<PerlIO_set_ptrcnt(f,p,c)>, B<PerlIO_set_cnt(f,c)>, B<PerlIO_has_base(f)>,
-B<PerlIO_get_base(f)>, B<PerlIO_get_bufsiz(f)>
+=item Cygwin Configuration
 
-=back
+C<PATH>, I<nroff>, Permissions
 
 =back
 
-=head2 perlxs - XS language reference manual
+=item CONFIGURE
 
 =over
 
-=item DESCRIPTION
-
-=over
+=item Strip Binaries
 
-=item Introduction
+=item Optional Libraries
 
-=item On The Road
+C<-lcrypt>, C<-lgdbm> (C<use GDBM_File>), C<-ldb> (C<use DB_File>),
+C<-lcygipc> (C<use IPC::SysV>)
 
-=item The Anatomy of an XSUB
+=item Configure-time Options
 
-=item The Argument Stack
+C<-Uusedl>, C<-Uusemymalloc>, C<-Dusemultiplicity>, C<-Duseperlio>,
+C<-Duse64bitint>, C<-Duselongdouble>, C<-Dusethreads>, C<-Duselargefiles>
 
-=item The RETVAL Variable
+=item Suspicious Warnings
 
-=item The MODULE Keyword
+Whoa There, I<dlsym()>, Win9x and C<d_eofnblk>, Checking how std your stdio
+is.., Compiler/Preprocessor defines
 
-=item The PACKAGE Keyword
+=back
 
-=item The PREFIX Keyword
+=item MAKE
 
-=item The OUTPUT: Keyword
+=over
 
-=item The CODE: Keyword
+=item Warnings
 
-=item The INIT: Keyword
+=item ld2
 
-=item The NO_INIT Keyword
+=back
 
-=item Initializing Function Parameters
+=item TEST
 
-=item Default Parameter Values
+=over
 
-=item The PREINIT: Keyword
+=item File Permissions
 
-=item The SCOPE: Keyword
+=item Hard Links
 
-=item The INPUT: Keyword
+=item Filetime Granularity
 
-=item Variable-length Parameter Lists
+=item Tainting Checks
 
-=item The C_ARGS: Keyword
+=item /etc/group
 
-=item The PPCODE: Keyword
+=item Script Portability
 
-=item Returning Undef And Empty Lists
+Pathnames, Text/Binary, F<.exe>, chown(), Miscellaneous
 
-=item The REQUIRE: Keyword
+=back
 
-=item The CLEANUP: Keyword
+=item INSTALL
 
-=item The BOOT: Keyword
+=item MANIFEST
 
-=item The VERSIONCHECK: Keyword
+Documentation, Build, Configure, Make, Install, Tests, Compiled Perl
+Source, Compiled Module Source, Perl Modules/Scripts
 
-=item The PROTOTYPES: Keyword
+=item BUGS
 
-=item The PROTOTYPE: Keyword
+=item AUTHORS
 
-=item The ALIAS: Keyword
+=item HISTORY
 
-=item The INTERFACE: Keyword
+=back
 
-=item The INTERFACE_MACRO: Keyword
+=head2 perldos - Perl under DOS, W31, W95.
 
-=item The INCLUDE: Keyword
+=over
 
-=item The CASE: Keyword
+=item SYNOPSIS
 
-=item The & Unary Operator
+=item DESCRIPTION
 
-=item Inserting Comments and C Preprocessor Directives
+=over
 
-=item Using XS With C++
+=item Prerequisites
 
-=item Interface Strategy
+DJGPP, Pthreads
 
-=item Perl Objects And C Structures
+=item Shortcomings of Perl under DOS
 
-=item The Typemap
+=item Building
 
-=back
+=item Testing
 
-=item EXAMPLES
+=item Installation
 
-=item XS VERSION
+=back
 
 =item AUTHOR
 
+=item SEE ALSO
+
 =back
 
-=head2 perlxstut, perlXStut - Tutorial for writing XSUBs
+=head2 perlhpux, README.hpux - Perl version 5 on Hewlett-Packard Unix
+(HP-UX) systems
 
 =over
 
 =item DESCRIPTION
 
-=item SPECIAL NOTES
-
 =over
 
-=item make
-
-=item Version caveat
-
-=item Dynamic Loading versus Static Loading
-
-=back
-
-=item TUTORIAL
-
-=over
+=item Compiling Perl 5 on HP-UX
 
-=item EXAMPLE 1
+=item PA-RISC
 
-=item EXAMPLE 2
+=item PA-RISC 1.0
 
-=item What has gone on?
+=item PA-RISC 1.1
 
-=item Writing good test scripts
+=item PA-RISC 2.0
 
-=item EXAMPLE 3
+=item Portability Between PA-RISC Versions
 
-=item What's new here?
+=item Building Dynamic Extensions on HP-UX
 
-=item Input and Output Parameters
+=item The HP ANSI C Compiler
 
-=item The XSUBPP Program
+=item Using Large Files with Perl
 
-=item The TYPEMAP file
+=item Threaded Perl
 
-=item Warning about Output Arguments
+=item 64-bit Perl
 
-=item EXAMPLE 4
+=item GDBM and Threads
 
-=item What has happened here?
+=item NFS filesystems and utime(2)
 
-=item Anatomy of .xs file
+=back
 
-=item Getting the fat out of XSUBs
+=item AUTHOR
 
-=item More about XSUB arguments
+=item DATE
 
-=item The Argument Stack
+=back
 
-=item Extending your Extension
+=head2 perlmachten, README.machten - Perl version 5 on Power MachTen
+systems
 
-=item Documenting your Extension
+=over
 
-=item Installing your Extension
+=item DESCRIPTION
 
-=item EXAMPLE 5
+=over
 
-=item New Things in this Example
+=item Compiling Perl 5 on MachTen
 
-=item EXAMPLE 6
+=item Failures during C<make test>
 
-=item New Things in this Example
+op/lexassign.t, pragma/warnings.t
 
-=item EXAMPLE 7 (Coming Soon)
+=item Building external modules
 
-=item EXAMPLE 8 (Coming Soon)
+=back
 
-=item EXAMPLE 9 (Coming Soon)
+=item AUTHOR
 
-=item Troubleshooting these Examples
+=item DATE
 
 =back
 
-=item See also
-
-=item Author
+=head2 perlos2 - Perl under OS/2, DOS, Win0.3*, Win0.95 and WinNT.
 
 =over
 
-=item Last Changed
-
-=back
+=item SYNOPSIS
 
 =back
 
-=head2 perlguts - Introduction to the Perl API
-
 =over
 
-=item DESCRIPTION
+=item Target
 
-=item Variables
+=item Other OSes
 
-=over
+=item Prerequisites
 
-=item Datatypes
+EMX, RSX, HPFS, pdksh
 
-=item What is an "IV"?
+=item Starting Perl programs under OS/2 (and DOS and...)
 
-=item Working with SVs
+=item Starting OS/2 (and DOS) programs under Perl
 
-=item What's Really Stored in an SV?
+=back
 
-=item Working with AVs
+=over
 
-=item Working with HVs
+=item Frequently asked questions
 
-=item Hash API Extensions
+=over
 
-=item References
+=item I cannot run external programs
 
-=item Blessed References and Class Objects
+=item I cannot embed perl into my program, or use F<perl.dll> from my
+program. 
 
-=item Creating New Variables
+Is your program EMX-compiled with C<-Zmt -Zcrtdll>?, Did you use
+L<ExtUtils::Embed>?
 
-=item Reference Counts and Mortality
+=item C<``> and pipe-C<open> do not work under DOS.
 
-=item Stashes and Globs
+=item Cannot start C<find.exe "pattern" file>
 
-=item Double-Typed SVs
+=back
 
-=item Magic Variables
+=item INSTALLATION
 
-=item Assigning Magic
+=over
 
-=item Magic Virtual Tables
+=item Automatic binary installation
 
-=item Finding Magic
+C<PERL_BADLANG>, C<PERL_BADFREE>, F<Config.pm>
 
-=item Understanding the Magic of Tied Hashes and Arrays
+=item Manual binary installation
 
-=item Localizing changes
+Perl VIO and PM executables (dynamically linked), Perl_ VIO executable
+(statically linked), Executables for Perl utilities, Main Perl library,
+Additional Perl modules, Tools to compile Perl modules, Manpages for Perl
+and utilities, Manpages for Perl modules, Source for Perl documentation,
+Perl manual in F<.INF> format, Pdksh
 
-C<SAVEINT(int i)>, C<SAVEIV(IV i)>, C<SAVEI32(I32 i)>, C<SAVELONG(long i)>,
-C<SAVESPTR(s)>, C<SAVEPPTR(p)>, C<SAVEFREESV(SV *sv)>, C<SAVEFREEOP(OP
-*op)>, C<SAVEFREEPV(p)>, C<SAVECLEARSV(SV *sv)>, C<SAVEDELETE(HV *hv, char
-*key, I32 length)>, C<SAVEDESTRUCTOR(DESTRUCTORFUNC_NOCONTEXT_t f, void
-*p)>, C<SAVEDESTRUCTOR_X(DESTRUCTORFUNC_t f, void *p)>, C<SAVESTACK_POS()>,
-C<SV* save_scalar(GV *gv)>, C<AV* save_ary(GV *gv)>, C<HV* save_hash(GV
-*gv)>, C<void save_item(SV *item)>, C<void save_list(SV **sarg, I32
-maxsarg)>, C<SV* save_svref(SV **sptr)>, C<void save_aptr(AV **aptr)>,
-C<void save_hptr(HV **hptr)>
+=item B<Warning>
 
 =back
 
-=item Subroutines
+=item Accessing documentation
 
 =over
 
-=item XSUBs and the Argument Stack
+=item OS/2 F<.INF> file
 
-=item Calling Perl Routines from within C Programs
+=item Plain text
 
-=item Memory Allocation
+=item Manpages
 
-=item PerlIO
+=item HTML
 
-=item Putting a C value on Perl stack
+=item GNU C<info> files
 
-=item Scratchpads
+=item F<.PDF> files
 
-=item Scratchpads and recursion
+=item C<LaTeX> docs
 
 =back
 
-=item Compiled code
+=item BUILD
 
 =over
 
-=item Code tree
+=item Prerequisites
 
-=item Examining the tree
+=item Getting perl source
 
-=item Compile pass 1: check routines
+=item Application of the patches
 
-=item Compile pass 1a: constant folding
+=item Hand-editing
 
-=item Compile pass 2: context propagation
+=item Making
 
-=item Compile pass 3: peephole optimization
+=item Testing
+
+A lot of C<bad free>, Process terminated by SIGTERM/SIGINT, F<op/fs.t>,
+F<lib/io_pipe.t>, F<lib/io_sock.t>, F<op/stat.t>, F<lib/io_udp.t>
+
+=item Installing the built perl
+
+=item C<a.out>-style build
 
 =back
 
-=item How multiple interpreters and concurrency are supported
+=item Build FAQ
 
 =over
 
-=item Background and PERL_IMPLICIT_CONTEXT
+=item Some C</> became C<\> in pdksh.
 
-=item How do I use all this in extensions?
+=item C<'errno'> - unresolved external
 
-=item Future Plans and PERL_IMPLICIT_SYS
+=item Problems with tr or sed
 
-=back
+=item Some problem (forget which ;-)
 
-=item AUTHORS
+=item Library ... not found
 
-=item SEE ALSO
+=item Segfault in make
 
 =back
 
-=head2 perlcall - Perl calling conventions from C
+=item Specific (mis)features of OS/2 port
 
 =over
 
-=item DESCRIPTION
+=item C<setpriority>, C<getpriority>
 
-An Error Handler, An Event Driven Program
+=item C<system()>
 
-=item THE CALL_ FUNCTIONS
+=item C<extproc> on the first line
 
-call_sv, call_pv, call_method, call_argv
+=item Additional modules:
 
-=item FLAG VALUES
+=item Prebuilt methods:
+
+C<File::Copy::syscopy>, C<DynaLoader::mod2fname>,  C<Cwd::current_drive()>,
+ C<Cwd::sys_chdir(name)>,  C<Cwd::change_drive(name)>, 
+C<Cwd::sys_is_absolute(name)>, C<Cwd::sys_is_rooted(name)>, 
+C<Cwd::sys_is_relative(name)>, C<Cwd::sys_cwd(name)>, 
+C<Cwd::sys_abspath(name, dir)>,  C<Cwd::extLibpath([type])>, 
+C<Cwd::extLibpath_set( path [, type ] )>
+
+=item Misfeatures
+
+=item Modifications
+
+C<popen>, C<tmpnam>, C<tmpfile>, C<ctermid>, C<stat>, C<flock>
+
+=back
+
+=item Perl flavors
 
 =over
 
-=item  G_VOID
+=item F<perl.exe>
 
-=item  G_SCALAR
+=item F<perl_.exe>
 
-=item G_ARRAY
+=item F<perl__.exe>
 
-=item G_DISCARD
+=item F<perl___.exe>
 
-=item G_NOARGS
+=item Why strange names?
 
-=item G_EVAL
+=item Why dynamic linking?
 
-=item G_KEEPERR
+=item Why chimera build?
 
-=item Determining the Context
+explicit fork(), open FH, "|-", open FH, "-|"
 
 =back
 
-=item KNOWN PROBLEMS
-
-=item EXAMPLES
+=item ENVIRONMENT
 
 =over
 
-=item No Parameters, Nothing returned
+=item C<PERLLIB_PREFIX>
 
-=item Passing Parameters
+=item C<PERL_BADLANG>
 
-=item Returning a Scalar
+=item C<PERL_BADFREE>
 
-=item Returning a list of values
+=item C<PERL_SH_DIR>
 
-=item Returning a list in a scalar context
+=item C<USE_PERL_FLOCK>
 
-=item Returning Data from Perl via the parameter list
+=item C<TMP> or C<TEMP>
 
-=item Using G_EVAL
+=back
 
-=item Using G_KEEPERR
+=item Evolution
 
-=item Using call_sv
+=over
 
-=item Using call_argv
+=item Priorities
 
-=item Using call_method
+=item DLL name mangling
 
-=item Using GIMME_V
+=item Threading
 
-=item Using Perl to dispose of temporaries
+=item Calls to external programs
 
-=item Strategies for storing Callback Context Information
+=item Memory allocation
 
-1. Ignore the problem - Allow only 1 callback, 2. Create a sequence of
-callbacks - hard wired limit, 3. Use a parameter to map to the Perl
-callback
+=item Threads
 
-=item Alternate Stack Manipulation
+C<COND_WAIT>, F<os2.c>
 
-=item Creating and calling an anonymous subroutine in C
+=back
 
 =back
 
-=item SEE ALSO
+=over
 
 =item AUTHOR
 
-=item DATE
+=item SEE ALSO
 
 =back
 
-=head2 perlcompile - Introduction to the Perl Compiler-Translator 
+=head2 perlos390, README.os390 - building and installing Perl for OS/390.
 
 =over
 
+=item SYNOPSIS
+
 =item DESCRIPTION
 
 =over
 
-=item Layout
+=item Unpacking
 
-B::Bytecode, B::C, B::CC, B::Lint, B::Deparse, B::Xref
+=item Setup and utilities
 
-=back
+=item Configure
 
-=item Using The Back Ends
+=item Build, test, install
 
-=over
+=item Usage Hints
 
-=item The Cross Referencing Back End
+=item Extensions
 
-i, &, s, r
+=back
 
-=item The Decompiling Back End
+=item AUTHORS
 
-=item The Lint Back End
+=item SEE ALSO
 
-=item The Simple C Back End
+=over
 
-=item The Bytecode Back End
+=item Mailing list
 
-=item The Optimized C Back End
+=back
 
-B, O, B::Asmdata, B::Assembler, B::Bblock, B::Bytecode, B::C, B::CC,
-B::Debug, B::Deparse, B::Disassembler, B::Lint, B::Showlex, B::Stackobj,
-B::Stash, B::Terse, B::Xref
+=item HISTORY
 
 =back
 
-=item KNOWN PROBLEMS
+=head2 perlvms - VMS-specific documentation for Perl
 
-=item AUTHOR
+=over
 
-=back
+=item DESCRIPTION
 
-=head2 perlapi - autogenerated documentation for the perl public API
+=item Installation
+
+=item Organization of Perl Images
 
 =over
 
-=item DESCRIPTION
+=item Core Images
 
-AvFILL, av_clear, av_extend, av_fetch, av_len, av_make, av_pop, av_push,
-av_shift, av_store, av_undef, av_unshift, call_argv, call_method, call_pv,
-call_sv, CLASS, Copy, croak, CvSTASH, dMARK, dORIGMARK, dSP, dXSARGS,
-dXSI32, ENTER, eval_pv, eval_sv, EXTEND, fbm_compile, fbm_instr, FREETMPS,
-get_av, get_cv, get_hv, get_sv, GIMME, GIMME_V, GvSV, gv_fetchmeth,
-gv_fetchmethod, gv_fetchmethod_autoload, gv_stashpv, gv_stashsv, G_ARRAY,
-G_DISCARD, G_EVAL, G_NOARGS, G_SCALAR, G_VOID, HEf_SVKEY, 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, hv_iterkeysv, hv_iternext, hv_iternextsv,
-hv_iterval, hv_magic, hv_store, hv_store_ent, hv_undef, isALNUM, isALPHA,
-isDIGIT, isLOWER, isSPACE, isUPPER, items, ix, LEAVE, looks_like_number,
-MARK, mg_clear, mg_copy, mg_find, mg_free, mg_get, mg_length, mg_magical,
-mg_set, Move, New, newAV, Newc, newCONSTSUB, newHV, newRV_inc, newRV_noinc,
-NEWSV, newSViv, newSVnv, newSVpv, newSVpvf, newSVpvn, newSVrv, newSVsv,
-newSVuv, newXS, newXSproto, Newz, Nullav, Nullch, Nullcv, Nullhv, Nullsv,
-ORIGMARK, perl_alloc, perl_construct, perl_destruct, perl_free, perl_parse,
-perl_run, PL_DBsingle, PL_DBsub, PL_DBtrace, PL_dowarn, PL_modglobal,
-PL_na, PL_sv_no, PL_sv_undef, PL_sv_yes, POPi, POPl, POPn, POPp, POPs,
-PUSHi, PUSHMARK, PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, Renew, Renewc,
-require_pv, RETVAL, Safefree, savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST,
-strEQ, strGE, strGT, strLE, strLT, strNE, strnEQ, strnNE, StructCopy,
-SvCUR, SvCUR_set, SvEND, SvGETMAGIC, SvGROW, SvIOK, SvIOKp, SvIOK_off,
-SvIOK_on, SvIOK_only, SvIV, SvIVX, SvLEN, SvLOCK, SvNIOK, SvNIOKp,
-SvNIOK_off, SvNOK, SvNOKp, SvNOK_off, SvNOK_on, SvNOK_only, SvNV, SvNVX,
-SvOK, SvOOK, SvPOK, SvPOKp, SvPOK_off, SvPOK_on, SvPOK_only, SvPV, SvPVX,
-SvPV_force, SvPV_nolen, SvREFCNT, SvREFCNT_dec, SvREFCNT_inc, SvROK,
-SvROK_off, SvROK_on, SvRV, SvSETMAGIC, SvSetSV, SvSetSV_nosteal, SvSTASH,
-SvTAINT, SvTAINTED, SvTAINTED_off, SvTAINTED_on, SvTRUE, SvTYPE, svtype,
-SVt_IV, SVt_NV, SVt_PV, SVt_PVAV, SVt_PVCV, SVt_PVHV, SVt_PVMG, SvUNLOCK,
-SvUPGRADE, SvUV, SvUVX, sv_2mortal, sv_bless, sv_catpv, sv_catpvf,
-sv_catpvf_mg, sv_catpvn, sv_catpvn_mg, sv_catpv_mg, sv_catsv, sv_catsv_mg,
-sv_chop, sv_cmp, sv_dec, sv_derived_from, sv_eq, sv_grow, sv_inc,
-sv_insert, sv_isa, sv_isobject, sv_len, sv_magic, sv_mortalcopy,
-sv_newmortal, 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_setsv, sv_setsv_mg, sv_setuv, sv_setuv_mg, sv_unref,
-sv_upgrade, sv_usepvn, sv_usepvn_mg, sv_vcatpvfn, sv_vsetpvfn, THIS,
-toLOWER, toUPPER, warn, XPUSHi, XPUSHn, XPUSHp, XPUSHs, XPUSHu, XS,
-XSRETURN, XSRETURN_EMPTY, XSRETURN_IV, XSRETURN_NO, XSRETURN_NV,
-XSRETURN_PV, XSRETURN_UNDEF, XSRETURN_YES, XST_mIV, XST_mNO, XST_mNV,
-XST_mPV, XST_mUNDEF, XST_mYES, XS_VERSION, XS_VERSION_BOOTCHECK, Zero
+=item Perl Extensions
 
-=item AUTHORS
+=item Installing static extensions
 
-=item SEE ALSO
+=item Installing dynamic extensions
 
 =back
 
-=head2 perlintern - autogenerated documentation of purely B<internal> 
-                Perl functions
+=item File specifications
 
 =over
 
-=item DESCRIPTION
-
-is_gv_magical
+=item Syntax
 
-=item AUTHORS
+=item Wildcard expansion
 
-=item SEE ALSO
+=item Pipes
 
 =back
 
-=head2 perlhist - the Perl history records
+=item PERL5LIB and PERLLIB
+
+=item Command line
 
 =over
 
-=item DESCRIPTION
+=item I/O redirection and backgrounding
 
-=item INTRODUCTION
+=item Command line switches
 
-=item THE KEEPERS OF THE PUMPKIN
+-i, -S, -u
+
+=back
+
+=item Perl functions
+
+File tests, backticks, binmode FILEHANDLE, crypt PLAINTEXT, USER, dump,
+exec LIST, fork, getpwent, getpwnam, getpwuid, gmtime, kill, qx//, select
+(system call), stat EXPR, system LIST, time, times, unlink LIST, utime
+LIST, waitpid PID,FLAGS
+
+=item Perl variables
+
+%ENV, CRTL_ENV, CLISYM_[LOCAL], Any other string, $!, $^E, $?, $^S, $|
+
+=item Standard modules with VMS-specific differences
 
 =over
 
-=item PUMPKIN?
+=item SDBM_File
 
 =back
 
-=item THE RECORDS
+=item Revision date
+
+=item AUTHOR
+
+=back
+
+=head2 perlwin32 - Perl under Win32
 
 =over
 
-=item SELECTED RELEASE SIZES
+=item SYNOPSIS
 
-=item SELECTED PATCH SIZES
+=item DESCRIPTION
+
+=over
+
+=item Setting Up
+
+Make, Command Shell, Borland C++, Microsoft Visual C++, Mingw32 with GCC
+
+=item Building
+
+=item Testing
+
+=item Installation
+
+=item Usage Hints
+
+Environment Variables, File Globbing, Using perl from the command line,
+Building Extensions, Command-line Wildcard Expansion, Win32 Specific
+Extensions, Running Perl Scripts, Miscellaneous Things
 
 =back
 
-=item THE KEEPERS OF THE RECORDS
+=item BUGS AND CAVEATS
+
+=item AUTHORS
+
+=item SEE ALSO
+
+=item HISTORY
 
 =back
 
@@ -3975,6 +6257,18 @@ FETCH_I<type>_ATTRIBUTES, MODIFY_I<type>_ATTRIBUTES
 
 =back
 
+=head2 attrs - set/get attributes of a subroutine (deprecated)
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+method, locked
+
+=back
+
 =head2 autouse - postpone load of modules until a function is used
 
 =over
@@ -4194,6 +6488,18 @@ operations
 
 =back
 
+=head2 ops - Perl pragma to restrict unsafe operations when compiling
+
+=over
+
+=item SYNOPSIS 
+
+=item DESCRIPTION
+
+=item SEE ALSO
+
+=back
+
 =head2 overload - Package for overloading perl operations
 
 =over
@@ -4280,29 +6586,13 @@ integer, float, binary, q, qr
 
 =item I<Really> symbolic calculator
 
-=back
-
-=item AUTHOR
-
-=item DIAGNOSTICS
-
-=item BUGS
-
-=back
-
-=head2 pwent - Perl pragma to control the pwent functions
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
+=back
 
-=over
+=item AUTHOR
 
-=item subpragma shadow_password
+=item DIAGNOSTICS
 
-=back
+=item BUGS
 
 =back
 
@@ -4403,6 +6693,8 @@ warnings::warn([$category,] $message)
 
 =back
 
+=head2 warnings::register - warnings import function
+
 =head1 MODULE DOCUMENTATION
 
 =head2 AnyDBM_File - provide framework for multiple DBMs
@@ -4842,6 +7134,8 @@ B<-u Package>
 
 =back
 
+=head2 B::Stash - show what stashes are loaded
+
 =head2 B::Terse - Walk Perl syntax tree, printing terse info about ops
 
 =over
@@ -5386,6 +7680,8 @@ B<name()>, B<value()>, B<domain()>, B<path()>, B<expires()>
 
 =back
 
+=head2 CGI::Util - various utilities
+
 =head2 CPAN - query, download and build perl modules from CPAN sites
 
 =over
@@ -6216,6 +8512,22 @@ arrays
 
 =back
 
+=head2 Errno - System errno constants
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CAVEATS
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
 =head2 Exporter - Implements default import method for modules
 
 =over
@@ -6232,6 +8544,8 @@ arrays
 
 =item Specialised Import Lists
 
+=item Constants can be inlined
+
 =item Exporting without using Export's import method
 
 =item Module Version Checking
@@ -7328,10 +9642,6 @@ splitdir
 
 catpath
 
-abs2rel
-
-rel2abs
-
 =over
 
 =item SEE ALSO
@@ -7412,15 +9722,243 @@ TopSystemUID
 
 =item WARNING
 
-=item HISTORY
+=item HISTORY
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
+=head2 File::stat - by-name interface to Perl's built-in stat() functions
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item NOTE
+
+=item AUTHOR
+
+=back
+
+=head2 FileCache - keep more files open than the system permits
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item BUGS
+
+=back
+
+=head2 FileHandle - supply object methods for filehandles
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+$fh->print, $fh->printf, $fh->getline, $fh->getlines
+
+=item SEE ALSO
+
+=back
+
+=head2 FindBin - Locate directory of original perl script
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item EXPORTABLE VARIABLES
+
+=item KNOWN BUGS
+
+=item AUTHORS
+
+=item COPYRIGHT
+
+=back
+
+=head2 GDBM_File - Perl5 access to the gdbm library.
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item AVAILABILITY
+
+=item BUGS
+
+=item SEE ALSO
+
+=back
+
+=head2 Getopt::Long - Extended processing of command line options
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item Command Line Options, an Introduction
+
+=item Getting Started with Getopt::Long
+
+=over
+
+=item Simple options
+
+=item A little bit less simple options
+
+=item Mixing command line option with other arguments
+
+=item Options with values
+
+=item Options with multiple values
+
+=item Options with hash values
+
+=item User-defined subroutines to handle options
+
+=item Options with multiple names
+
+=item Case and abbreviations
+
+=item Summary of Option Specifications
+
+!, +, s, i, f, : I<type> [ I<desttype> ]
+
+=back
+
+=item Advanced Possibilities
+
+=over
+
+=item Documentation and help texts
+
+=item Storing options in a hash
+
+=item Bundling
+
+=item The lonesome dash
+
+=item Argument call-back
+
+=back
+
+=item Configuring Getopt::Long
+
+default, auto_abbrev, getopt_compat, require_order, permute, bundling
+(default: reset), bundling_override (default: reset), ignore_case 
+(default: set), ignore_case_always (default: reset), pass_through (default:
+reset), prefix, prefix_pattern, debug (default: reset)
+
+=item Return values and Errors
+
+=item Legacy
+
+=over
+
+=item Default destinations
+
+=item Alternative option starters
+
+=item Configuration variables
+
+=back
+
+=item AUTHOR
+
+=item COPYRIGHT AND DISCLAIMER
+
+=back
+
+=head2 Getopt::Std, getopt - Process single-character switches with switch
+clustering
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=back
+
+=head2 I18N::Collate - compare 8-bit scalar data according to the current
+locale
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=back
+
+=head2 IO - load various IO modules
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=back
+
+=head2 IO::Dir - supply object methods for directory handles
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+new ( [ DIRNAME ] ), open ( DIRNAME ), read (), seek ( POS ), tell (),
+rewind (), close (), tie %hash, IO::Dir, DIRNAME [, OPTIONS ]
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
+=head2 IO::File - supply object methods for filehandles
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CONSTRUCTOR
+
+new ( FILENAME [,MODE [,PERMS]] ), new_tmpfile
+
+=item METHODS
+
+open( FILENAME [,MODE [,PERMS]] )
 
 =item SEE ALSO
 
-=item AUTHOR
+=item HISTORY
 
 =back
 
-=head2 File::stat - by-name interface to Perl's built-in stat() functions
+=head2 IO::Handle - supply object methods for I/O handles
 
 =over
 
@@ -7428,25 +9966,28 @@ TopSystemUID
 
 =item DESCRIPTION
 
-=item NOTE
-
-=item AUTHOR
+=item CONSTRUCTOR
 
-=back
+new (), new_from_fd ( FD, MODE )
 
-=head2 FileCache - keep more files open than the system permits
+=item METHODS
 
-=over
+$io->fdopen ( FD, MODE ), $io->opened, $io->getline, $io->getlines,
+$io->ungetc ( ORD ), $io->write ( BUF, LEN [, OFFSET ] ), $io->error,
+$io->clearerr, $io->sync, $io->flush, $io->printflush ( ARGS ),
+$io->blocking ( [ BOOL ] ), $io->untaint
 
-=item SYNOPSIS
+=item NOTE
 
-=item DESCRIPTION
+=item SEE ALSO
 
 =item BUGS
 
+=item HISTORY
+
 =back
 
-=head2 FileHandle - supply object methods for filehandles
+=head2 IO::Pipe - supply object methods for pipes
 
 =over
 
@@ -7454,13 +9995,23 @@ TopSystemUID
 
 =item DESCRIPTION
 
-$fh->print, $fh->printf, $fh->getline, $fh->getlines
+=item CONSTRUCTOR
+
+new ( [READER, WRITER] )
+
+=item METHODS
+
+reader ([ARGS]), writer ([ARGS]), handles ()
 
 =item SEE ALSO
 
+=item AUTHOR
+
+=item COPYRIGHT
+
 =back
 
-=head2 FindBin - Locate directory of original perl script
+=head2 IO::Poll - Object interface to system poll call
 
 =over
 
@@ -7468,17 +10019,20 @@ $fh->print, $fh->printf, $fh->getline, $fh->getlines
 
 =item DESCRIPTION
 
-=item EXPORTABLE VARIABLES
+=item METHODS
 
-=item KNOWN BUGS
+mask ( IO [, EVENT_MASK ] ), poll ( [ TIMEOUT ] ), events ( IO ), remove (
+IO ), handles( [ EVENT_MASK ] )
 
-=item AUTHORS
+=item SEE ALSO
+
+=item AUTHOR
 
 =item COPYRIGHT
 
 =back
 
-=head2 GDBM_File - Perl5 access to the gdbm library.
+=head2 IO::Seekable - supply seek based methods for I/O objects
 
 =over
 
@@ -7486,15 +10040,13 @@ $fh->print, $fh->printf, $fh->getline, $fh->getlines
 
 =item DESCRIPTION
 
-=item AVAILABILITY
-
-=item BUGS
-
 =item SEE ALSO
 
+=item HISTORY
+
 =back
 
-=head2 Getopt::Long - Extended processing of command line options
+=head2 IO::Select - OO interface to the select system call
 
 =over
 
@@ -7502,81 +10054,79 @@ $fh->print, $fh->printf, $fh->getline, $fh->getlines
 
 =item DESCRIPTION
 
-=item Command Line Options, an Introduction
-
-=item Getting Started with Getopt::Long
+=item CONSTRUCTOR
 
-=over
+new ( [ HANDLES ] )
 
-=item Simple options
+=item METHODS
 
-=item A little bit less simple options
+add ( HANDLES ), remove ( HANDLES ), exists ( HANDLE ), handles, can_read (
+[ TIMEOUT ] ), can_write ( [ TIMEOUT ] ), has_exception ( [ TIMEOUT ] ),
+count (), bits(), select ( READ, WRITE, ERROR [, TIMEOUT ] )
 
-=item Mixing command line option with other arguments
+=item EXAMPLE
 
-=item Options with values
+=item AUTHOR
 
-=item Options with multiple values
+=item COPYRIGHT
 
-=item Options with hash values
+=back
 
-=item User-defined subroutines to handle options
+=head2 IO::Socket - Object interface to socket communications
 
-=item Options with multiple names
+=over
 
-=item Case and abbreviations
+=item SYNOPSIS
 
-=item Summary of Option Specifications
+=item DESCRIPTION
 
-!, +, s, i, f, : I<type> [ I<desttype> ]
+=item CONSTRUCTOR
 
-=back
+new ( [ARGS] )
 
-=item Advanced Possibilities
+=item METHODS
 
-=over
+accept([PKG]), socketpair(DOMAIN, TYPE, PROTOCOL), timeout([VAL]),
+sockopt(OPT [, VAL]), sockdomain, socktype, protocol, connected
 
-=item Documentation and help texts
+=item SEE ALSO
 
-=item Storing options in a hash
+=item AUTHOR
 
-=item Bundling
+=item COPYRIGHT
 
-=item The lonesome dash
+=back
 
-=item Argument call-back
+=head2 IO::Socket::INET - Object interface for AF_INET domain sockets
 
-=back
+=over
 
-=item Configuring Getopt::Long
+=item SYNOPSIS
 
-default, auto_abbrev, getopt_compat, require_order, permute, bundling
-(default: reset), bundling_override (default: reset), ignore_case 
-(default: set), ignore_case_always (default: reset), pass_through (default:
-reset), prefix, prefix_pattern, debug (default: reset)
+=item DESCRIPTION
 
-=item Return values and Errors
+=item CONSTRUCTOR
 
-=item Legacy
+new ( [ARGS] )
 
 =over
 
-=item Default destinations
-
-=item Alternative option starters
+=item METHODS
 
-=item Configuration variables
+sockaddr (), sockport (), sockhost (), peeraddr (), peerport (), peerhost
+()
 
 =back
 
+=item SEE ALSO
+
 =item AUTHOR
 
-=item COPYRIGHT AND DISCLAIMER
+=item COPYRIGHT
 
 =back
 
-=head2 Getopt::Std, getopt - Process single-character switches with switch
-clustering
+=head2 IO::Socket::UNIX - Object interface for AF_UNIX domain sockets
 
 =over
 
@@ -7584,26 +10134,19 @@ clustering
 
 =item DESCRIPTION
 
-=back
-
-=head2 I18N::Collate - compare 8-bit scalar data according to the current
-locale
-
-=over
-
-=item SYNOPSIS
+=item CONSTRUCTOR
 
-=item DESCRIPTION
+new ( [ARGS] )
 
-=back
+=item METHODS
 
-=head2 IO - load various IO modules
+hostpath(), peerpath()
 
-=over
+=item SEE ALSO
 
-=item SYNOPSIS
+=item AUTHOR
 
-=item DESCRIPTION
+=item COPYRIGHT
 
 =back
 
@@ -7847,6 +10390,28 @@ hostpath(), peerpath()
 
 =back
 
+=head2 IPC::Msg - SysV Msg IPC object class
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item METHODS
+
+new ( KEY , FLAGS ), id, rcv ( BUF, LEN [, TYPE [, FLAGS ]] ), remove, set
+( STAT ), set ( NAME => VALUE [, NAME => VALUE ...] ), snd ( TYPE, MSG [,
+FLAGS ] ), stat
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
 =head2 IPC::Open2, open2 - open a process for both reading and writing
 
 =over
@@ -7874,6 +10439,29 @@ handling
 
 =back
 
+=head2 IPC::Semaphore - SysV Semaphore IPC object class
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item METHODS
+
+new ( KEY , NSEMS , FLAGS ), getall, getncnt ( SEM ), getpid ( SEM ),
+getval ( SEM ), getzcnt ( SEM ), id, op ( OPLIST ), remove, set ( STAT ),
+set ( NAME => VALUE [, NAME => VALUE ...] ), setall ( VALUES ), setval ( N
+, VALUE ), stat
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
 =head2 IPC::SysV - SysV IPC constants
 
 =over
@@ -8304,12 +10892,12 @@ 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,
-strncat, strncmp, strncpy, stroul, strpbrk, strrchr, strspn, strstr,
-strtod, strtok, strtol, strtoul, strxfrm, sysconf, system, tan, tanh,
-tcdrain, tcflow, tcflush, tcgetpgrp, tcsendbreak, tcsetpgrp, time, times,
-tmpfile, tmpnam, tolower, toupper, ttyname, tzname, tzset, umask, uname,
-ungetc, unlink, utime, vfprintf, vprintf, vsprintf, wait, waitpid,
-wcstombs, wctomb, write
+strncat, strncmp, strncpy, strpbrk, strrchr, strspn, strstr, strtod,
+strtok, strtol, strtoul, strxfrm, sysconf, system, tan, tanh, tcdrain,
+tcflow, tcflush, tcgetpgrp, tcsendbreak, tcsetpgrp, time, times, tmpfile,
+tmpnam, tolower, toupper, ttyname, tzname, tzset, umask, uname, ungetc,
+unlink, utime, vfprintf, vprintf, vsprintf, wait, waitpid, wcstombs,
+wctomb, write
 
 =item CLASSES
 
@@ -8397,8 +10985,6 @@ Constants
 
 Constants, Macros
 
-=item CREATION
-
 =back
 
 =head2 Pod::Checker, podchecker() - check pod documents for syntax errors
@@ -9456,6 +12042,39 @@ C<-pathlist>
 
 =back
 
+=head2 Safe - Compile and execute code in restricted compartments
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+a new namespace, an operator mask
+
+=item WARNING
+
+=over
+
+=item RECENT CHANGES
+
+=item Methods in class Safe
+
+permit (OP, ...), permit_only (OP, ...), deny (OP, ...), deny_only (OP,
+...), trap (OP, ...), untrap (OP, ...), share (NAME, ...), share_from
+(PACKAGE, ARRAYREF), varglob (VARNAME), reval (STRING), rdo (FILENAME),
+root (NAMESPACE), mask (MASK)
+
+=item Some Safety Issues
+
+Memory, CPU, Snooping, Signals, State Changes
+
+=item AUTHOR
+
+=back
+
+=back
+
 =head2 Search::Dict, look - search for key in dictionary file
 
 =over
@@ -9555,6 +12174,27 @@ pack_sockaddr_un PATH, unpack_sockaddr_un SOCKADDR_UN
 
 =back
 
+=head2 Syslog, Sys::Syslog, openlog, closelog, setlogmask, syslog - Perl
+interface to the UNIX syslog(3) calls
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+openlog $ident, $logopt, $facility, syslog $priority, $format, @args,
+setlogmask $mask_priority, setlogsock $sock_type (added in 5.004_02),
+closelog
+
+=item EXAMPLES
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
 =head2 Syslog::Syslog, Sys::Syslog, openlog, closelog, setlogmask, syslog -
 Perl interface to the UNIX syslog(3) calls
 
@@ -10069,6 +12709,38 @@ March 18th, 2000
 
 =back
 
+=head2 Win32 - Interfaces to some Win32 API Functions
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Alphabetical Listing of Win32 Functions
+
+Win32::AbortSystemShutdown(MACHINE), Win32::BuildNumber(),
+Win32::CopyFile(FROM, TO, OVERWRITE), Win32::DomainName(),
+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::GetShortPathName(PATHNAME), Win32::GetProcAddress(INSTANCE,
+PROCNAME), Win32::GetTickCount(), Win32::InitiateSystemShutdown(MACHINE,
+MESSAGE, TIMEOUT, FORCECLOSE, REBOOT), Win32::IsWinNT(), Win32::IsWin95(),
+Win32::LoadLibrary(LIBNAME), Win32::LoginName(),
+Win32::LookupAccountName(SYSTEM, ACCOUNT, DOMAIN, SID, SIDTYPE),
+Win32::LookupAccountSID(SYSTEM, SID, ACCOUNT, DOMAIN, SIDTYPE),
+Win32::MsgBox(MESSAGE [, FLAGS [, TITLE]]), Win32::NodeName(),
+Win32::RegisterServer(LIBRARYNAME), Win32::SetCwd(NEWDIRECTORY),
+Win32::SetLastError(ERROR), Win32::Sleep(TIME), Win32::Spawn(COMMAND, ARGS,
+PID), Win32::UnregisterServer(LIBRARYNAME)
+
+=back
+
+=back
+
 =head2 XSLoader - Dynamically load C libraries into Perl code
 
 =over
diff --git a/pp.c b/pp.c
index efea0c1..1649cf4 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -5263,7 +5263,7 @@ PP(pp_lock)
     dTOPss;
     SV *retsv = sv;
 #ifdef USE_THREADS
-    Perl_lock(aTHX_ sv);
+    sv_lock(sv);
 #endif /* USE_THREADS */
     if (SvTYPE(retsv) == SVt_PVAV || SvTYPE(retsv) == SVt_PVHV
        || SvTYPE(retsv) == SVt_PVCV) {
index 9400760..a924d2e 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -892,8 +892,8 @@ PP(pp_sort)
                    PL_sortstash = stash;
                }
 #ifdef USE_THREADS
-               Perl_lock(aTHX_ (SV *)PL_firstgv);
-               Perl_lock(aTHX_ (SV *)PL_secondgv);
+               sv_lock((SV *)PL_firstgv);
+               sv_lock((SV *)PL_secondgv);
 #endif
                SAVESPTR(GvSV(PL_firstgv));
                SAVESPTR(GvSV(PL_secondgv));
diff --git a/proto.h b/proto.h
index e7a21c3..bd222fe 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -865,6 +865,9 @@ PERL_CALLCONV struct perl_vars *    Perl_GetVars(pTHX);
 #endif
 PERL_CALLCONV int      Perl_runops_standard(pTHX);
 PERL_CALLCONV int      Perl_runops_debug(pTHX);
+#if defined(USE_THREADS)
+PERL_CALLCONV SV*      Perl_sv_lock(pTHX_ SV *sv);
+#endif
 PERL_CALLCONV void     Perl_sv_catpvf_mg(pTHX_ SV *sv, const char* pat, ...)
 #ifdef CHECK_FORMAT
  __attribute__((format(printf,pTHX_2,pTHX_3)))
@@ -1267,8 +1270,6 @@ STATIC void       S_xstat(pTHX_ int);
 #  endif
 #endif
 
-PERL_CALLCONV SV*      Perl_lock(pTHX_ SV *sv) __attribute__((noreturn));
-
 #if defined(PERL_OBJECT)
 };
 #endif
diff --git a/sv.h b/sv.h
index 0e12554..b77a9d3 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -363,7 +363,19 @@ struct xpvio {
 
     PerlIO *   xio_ifp;        /* ifp and ofp are normally the same */
     PerlIO *   xio_ofp;        /* but sockets need separate streams */
-    DIR *      xio_dirp;       /* for opendir, readdir, etc */
+    /* Cray addresses everything by word boundaries (64 bits) and
+     * code and data pointers cannot be mixed (which is exactly what
+     * Perl_filter_add() tries to do with the dirp), hence the following
+     * union trick (as suggested by Gurusamy Sarathy).
+     * For further information see Geir Johansen's problem report titled
+       [ID 20000612.002] Perl problem on Cray system
+     * The any pointer (known as IoANY()) will also be a good place
+     * to hang any IO disciplines to.
+     */
+    union {
+       DIR *   xiou_dirp;      /* for opendir, readdir, etc */
+       void *  xiou_any;       /* for alignment */
+    } xio_dirpu;
     long       xio_lines;      /* $. */
     long       xio_page;       /* $% */
     long       xio_page_len;   /* $= */
@@ -378,6 +390,8 @@ struct xpvio {
     char       xio_type;
     char       xio_flags;
 };
+#define xio_dirp       xio_dirpu.xiou_dirp
+#define xio_any                xio_dirpu.xiou_any
 
 #define IOf_ARGV       1       /* this fp iterates over ARGV */
 #define IOf_START      2       /* check for null ARGV and substitute '-' */
@@ -704,6 +718,7 @@ Set the length of the string which is in the SV.  See C<SvCUR>.
 #define IoIFP(sv)      ((XPVIO*)  SvANY(sv))->xio_ifp
 #define IoOFP(sv)      ((XPVIO*)  SvANY(sv))->xio_ofp
 #define IoDIRP(sv)     ((XPVIO*)  SvANY(sv))->xio_dirp
+#define IoANY(sv)      ((XPVIO*)  SvANY(sv))->xio_any
 #define IoLINES(sv)    ((XPVIO*)  SvANY(sv))->xio_lines
 #define IoPAGE(sv)     ((XPVIO*)  SvANY(sv))->xio_page
 #define IoPAGE_LEN(sv) ((XPVIO*)  SvANY(sv))->xio_page_len
index d2f1300..6e25310 100755 (executable)
@@ -4,6 +4,11 @@
 # test method calls and autoloading.
 #
 
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib' if -d '../lib';
+}
+
 print "1..53\n";
 
 @A::ISA = 'B';
index 0ea9e74..8234360 100644 (file)
--- a/thread.h
+++ b/thread.h
 #  define UNLOCK_STRTAB_MUTEX  MUTEX_UNLOCK(&PL_strtab_mutex)
 #  define LOCK_CRED_MUTEX      MUTEX_LOCK(&PL_cred_mutex)
 #  define UNLOCK_CRED_MUTEX    MUTEX_UNLOCK(&PL_cred_mutex)
-
+#  define LOCK_FDPID_MUTEX     MUTEX_LOCK(&PL_fdpid_mutex)
+#  define UNLOCK_FDPID_MUTEX   MUTEX_UNLOCK(&PL_fdpid_mutex)
 
 /* Values and macros for thr->flags */
 #define THRf_STATE_MASK        7
@@ -376,6 +377,14 @@ typedef struct condpair {
 #  define UNLOCK_CRED_MUTEX
 #endif
 
+#ifndef LOCK_FDPID_MUTEX
+#  define LOCK_FDPID_MUTEX
+#endif
+
+#ifndef UNLOCK_FDPID_MUTEX
+#  define UNLOCK_FDPID_MUTEX
+#endif
+
 /* THR, SET_THR, and dTHR are there for compatibility with old versions */
 #ifndef THR
 #  define THR          PERL_GET_THX
diff --git a/toke.c b/toke.c
index f601cf1..fc9d681 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -1875,7 +1875,7 @@ S_incl_perldb(pTHX)
  * store private buffers and state information.
  *
  * The supplied datasv parameter is upgraded to a PVIO type
- * and the IoDIRP field is used to store the function pointer,
+ * and the IoDIRP/IoANY field is used to store the function pointer,
  * and IOf_FAKE_DIRP is enabled on datasv to mark this as such.
  * Note that IoTOP_NAME, IoFMT_NAME, IoBOTTOM_NAME, if set for
  * private use must be set using malloc'd pointers.
@@ -1893,7 +1893,7 @@ Perl_filter_add(pTHX_ filter_t funcp, SV *datasv)
        datasv = NEWSV(255,0);
     if (!SvUPGRADE(datasv, SVt_PVIO))
         Perl_die(aTHX_ "Can't upgrade filter_add data to SVt_PVIO");
-    IoDIRP(datasv) = (DIR*)funcp; /* stash funcp into spare field */
+    IoANY(datasv) = (void *)funcp; /* stash funcp into spare field */
     IoFLAGS(datasv) |= IOf_FAKE_DIRP;
     DEBUG_P(PerlIO_printf(Perl_debug_log, "filter_add func %p (%s)\n",
                          funcp, SvPV_nolen(datasv)));
@@ -1913,9 +1913,9 @@ Perl_filter_del(pTHX_ filter_t funcp)
        return;
     /* if filter is on top of stack (usual case) just pop it off */
     datasv = FILTER_DATA(AvFILLp(PL_rsfp_filters));
-    if (IoDIRP(datasv) == (DIR*)funcp) {
+    if (IoANY(datasv) == (void *)funcp) {
        IoFLAGS(datasv) &= ~IOf_FAKE_DIRP;
-       IoDIRP(datasv) = (DIR*)NULL;
+       IoANY(datasv) = (void *)NULL;
        sv_free(av_pop(PL_rsfp_filters));
 
         return;
@@ -1975,7 +1975,7 @@ Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
        return FILTER_READ(idx+1, buf_sv, maxlen); /* recurse */
     }
     /* Get function pointer hidden within datasv       */
-    funcp = (filter_t)IoDIRP(datasv);
+    funcp = (filter_t)IoANY(datasv);
     DEBUG_P(PerlIO_printf(Perl_debug_log,
                          "filter_read %d: via function %p (%s)\n",
                          idx, funcp, SvPV_nolen(datasv)));
@@ -7391,27 +7391,6 @@ Perl_yyerror(pTHX_ char *s)
 }
 
 
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#endif
-
-/*
- * restore_rsfp
- * Restore a source filter.
- */
-
-static void
-restore_rsfp(pTHXo_ void *f)
-{
-    PerlIO *fp = (PerlIO*)f;
-
-    if (PL_rsfp == PerlIO_stdin())
-       PerlIO_clearerr(PL_rsfp);
-    else if (PL_rsfp && (PL_rsfp != fp))
-       PerlIO_close(PL_rsfp);
-    PL_rsfp = fp;
-}
-
 STATIC char*
 S_swallow_bom(pTHX_ char *s) {
     STRLEN slen;
@@ -7463,3 +7442,24 @@ S_swallow_bom(pTHX_ char *s) {
 } 
 return s;
 }
+
+#ifdef PERL_OBJECT
+#include "XSUB.h"
+#endif
+
+/*
+ * restore_rsfp
+ * Restore a source filter.
+ */
+
+static void
+restore_rsfp(pTHXo_ void *f)
+{
+    PerlIO *fp = (PerlIO*)f;
+
+    if (PL_rsfp == PerlIO_stdin())
+       PerlIO_clearerr(PL_rsfp);
+    else if (PL_rsfp && (PL_rsfp != fp))
+       PerlIO_close(PL_rsfp);
+    PL_rsfp = fp;
+}
diff --git a/util.c b/util.c
index e0f1f14..d892e75 100644 (file)
--- a/util.c
+++ b/util.c
@@ -2402,9 +2402,9 @@ Perl_my_popen(pTHX_ char *cmd, char *mode)
        PerlLIO_close(p[This]);
        p[This] = p[that];
     }
-    MUTEX_LOCK(&PL_fdpid_mutex);
+    LOCK_FDPID_MUTEX;
     sv = *av_fetch(PL_fdpid,p[This],TRUE);
-    MUTEX_UNLOCK(&PL_fdpid_mutex);
+    UNLOCK_FDPID_MUTEX;
     (void)SvUPGRADE(sv,SVt_IV);
     SvIVX(sv) = pid;
     PL_forkprocess = pid;
@@ -2622,9 +2622,9 @@ Perl_my_pclose(pTHX_ PerlIO *ptr)
     int saved_win32_errno;
 #endif
 
-    MUTEX_LOCK(&PL_fdpid_mutex);
+    LOCK_FDPID_MUTEX;
     svp = av_fetch(PL_fdpid,PerlIO_fileno(ptr),TRUE);
-    MUTEX_UNLOCK(&PL_fdpid_mutex);
+    UNLOCK_FDPID_MUTEX;
     pid = SvIVX(*svp);
     SvREFCNT_dec(*svp);
     *svp = &PL_sv_undef;
@@ -3497,7 +3497,7 @@ Perl_condpair_magic(pTHX_ SV *sv)
 }
 
 SV *
-Perl_lock(pTHX_ SV *osv)
+Perl_sv_lock(pTHX_ SV *osv)
 {
     MAGIC *mg;
     SV *sv = osv;
@@ -3513,17 +3513,18 @@ Perl_lock(pTHX_ SV *osv)
     MUTEX_LOCK(MgMUTEXP(mg));
     if (MgOWNER(mg) == thr)
        MUTEX_UNLOCK(MgMUTEXP(mg));
-     else {
+    else {
        while (MgOWNER(mg))
            COND_WAIT(MgOWNERCONDP(mg), MgMUTEXP(mg));
        MgOWNER(mg) = thr;
-       DEBUG_S(PerlIO_printf(Perl_debug_log, "0x%"UVxf": Perl_lock lock 0x%"UVxf"\n",
+       DEBUG_S(PerlIO_printf(Perl_debug_log,
+                             "0x%"UVxf": Perl_lock lock 0x%"UVxf"\n",
                              PTR2UV(thr), PTR2UV(sv));)
        MUTEX_UNLOCK(MgMUTEXP(mg));
        SAVEDESTRUCTOR_X(Perl_unlock_condpair, sv);
     }
-  SvUNLOCK(sv);
-  return sv;
+    SvUNLOCK(sv);
+    return sv;
 }
 
 /*
index d669516..f5ee4c6 100644 (file)
@@ -972,6 +972,8 @@ utils: $(PERLEXE) $(X2P)
        copy ..\vms\perlvms.pod .\perlvms.pod
        copy ..\README.win32 .\perlwin32.pod
        $(MAKE) -f ..\win32\pod.mak converters
+       cd ..\lib
+       $(PERLEXE) lib.pm.PL
        cd ..\win32
        $(PERLEXE) $(PL2BAT) $(UTILS)
 
index 6e33616..60777fa 100644 (file)
@@ -2393,9 +2393,9 @@ win32_popen(const char *command, const char *mode)
        /* close saved handle */
        win32_close(oldfd);
 
-       MUTEX_LOCK(&PL_fdpid_mutex);
+       LOCK_FDPID_MUTEX;
        sv_setiv(*av_fetch(w32_fdpid, p[parent], TRUE), childpid);
-       MUTEX_UNLOCK(&PL_fdpid_mutex);
+       UNLOCK_FDPID_MUTEX;
 
        /* set process id so that it can be returned by perl's open() */
        PL_forkprocess = childpid;
@@ -2431,9 +2431,9 @@ win32_pclose(FILE *pf)
     int childpid, status;
     SV *sv;
 
-    MUTEX_LOCK(&PL_fdpid_mutex);
+    LOCK_FDPID_MUTEX;
     sv = *av_fetch(w32_fdpid, win32_fileno(pf), TRUE);
-    MUTEX_UNLOCK(&PL_fdpid_mutex);
+
     if (SvIOK(sv))
        childpid = SvIVX(sv);
     else
@@ -2446,6 +2446,7 @@ win32_pclose(FILE *pf)
 
     win32_fclose(pf);
     SvIVX(sv) = 0;
+    UNLOCK_FDPID_MUTEX;
 
     if (win32_waitpid(childpid, &status, 0) == -1)
         return -1;