summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-07-11 19:27:48 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-07-11 19:27:48 +0000
commit4755096ec61711c5104ba0b6b9314f32ca0351fe (patch)
tree82996f8fa5485964bdfb76e935857ea9bf4165ea
parentf05cb5f197f40c7c89d7ac1b0d1fd2e1ac165afe (diff)
downloadperl-4755096ec61711c5104ba0b6b9314f32ca0351fe.tar.gz
integrate cfgperl changes#6293..6324 into mainline
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..)
-rw-r--r--MANIFEST10
-rw-r--r--Makefile.SH21
-rw-r--r--doio.c4
-rw-r--r--doop.c6
-rw-r--r--embed.h14
-rwxr-xr-xembed.pl5
-rw-r--r--ext/B/B/Stash.pm8
-rw-r--r--ext/POSIX/POSIX.pod608
-rw-r--r--global.sym2
-rw-r--r--gv.c4
-rw-r--r--lib/CGI/Util.pm8
-rw-r--r--lib/Win32.pod (renamed from pod/Win32.pod)0
-rw-r--r--lib/lib_pm.PL (renamed from lib/lib.pm.PL)1
-rw-r--r--lib/warnings/register.pm8
-rw-r--r--makedef.pl2
-rw-r--r--objXSUB.h10
-rw-r--r--perlapi.c9
-rw-r--r--pod/Makefile401
-rw-r--r--pod/Makefile.SH158
-rw-r--r--pod/buildtoc259
-rw-r--r--pod/buildtoc.PL467
-rw-r--r--pod/perl.pod74
-rw-r--r--pod/perlfunc.pod30
-rw-r--r--pod/perltoc.pod5678
-rw-r--r--pp.c2
-rw-r--r--pp_ctl.c4
-rw-r--r--proto.h5
-rw-r--r--sv.h17
-rwxr-xr-xt/op/method.t5
-rw-r--r--thread.h11
-rw-r--r--toke.c52
-rw-r--r--util.c19
-rw-r--r--win32/Makefile2
-rw-r--r--win32/win32.c9
34 files changed, 5447 insertions, 2466 deletions
diff --git a/MANIFEST b/MANIFEST
index 6573182cdc..16893a5262 100644
--- 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
diff --git a/Makefile.SH b/Makefile.SH
index 52789b9241..a80e93b635 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -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 970eaed07e..8789df92de 100644
--- 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 3394db2dc6..0c6e690528 100644
--- a/doop.c
+++ b/doop.c
@@ -23,11 +23,11 @@
#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 6fc37214e0..928be1943e 100644
--- a/embed.h
+++ b/embed.h
@@ -765,6 +765,9 @@
#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
@@ -1132,7 +1135,6 @@
#define xstat S_xstat
# endif
#endif
-#define lock Perl_lock
#if defined(PERL_OBJECT)
#endif
#define ck_anoncode Perl_ck_anoncode
@@ -2215,6 +2217,9 @@
#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)
@@ -2577,7 +2582,6 @@
#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)
@@ -4337,6 +4341,10 @@
#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
@@ -5000,8 +5008,6 @@
#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
diff --git a/embed.pl b/embed.pl
index de65cdc757..2b75a499ae 100755
--- 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
diff --git a/ext/B/B/Stash.pm b/ext/B/B/Stash.pm
index b9b828f505..f3a8247877 100644
--- a/ext/B/B/Stash.pm
+++ b/ext/B/B/Stash.pm
@@ -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 {
diff --git a/ext/POSIX/POSIX.pod b/ext/POSIX/POSIX.pod
index 186d72eac4..9abad2a86f 100644
--- a/ext/POSIX/POSIX.pod
+++ b/ext/POSIX/POSIX.pod
@@ -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.
-
diff --git a/global.sym b/global.sym
index 9053446da2..719e50a2f4 100644
--- a/global.sym
+++ b/global.sym
@@ -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 e24fc45206..f18f174d6e 100644
--- 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);
diff --git a/lib/CGI/Util.pm b/lib/CGI/Util.pm
index 0a5c48b6f3..cb6dd8a9e2 100644
--- a/lib/CGI/Util.pm
+++ b/lib/CGI/Util.pm
@@ -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;
diff --git a/pod/Win32.pod b/lib/Win32.pod
index bd1d06581e..bd1d06581e 100644
--- a/pod/Win32.pod
+++ b/lib/Win32.pod
diff --git a/lib/lib.pm.PL b/lib/lib_pm.PL
index 1b5efa08ad..0d2a73b842 100644
--- a/lib/lib.pm.PL
+++ b/lib/lib_pm.PL
@@ -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'} : '';
diff --git a/lib/warnings/register.pm b/lib/warnings/register.pm
index da6be97952..f98075a5ee 100644
--- a/lib/warnings/register.pm
+++ b/lib/warnings/register.pm
@@ -1,5 +1,13 @@
package warnings::register ;
+=pod
+
+=head1 NAME
+
+warnings::register - warnings import function
+
+=cut
+
require warnings ;
sub mkMask
diff --git a/makedef.pl b/makedef.pl
index 108993c75d..a02a298213 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -421,7 +421,7 @@ unless ($define{'USE_5005THREADS'}) {
Perl_find_threadsv
Perl_unlock_condpair
Perl_magic_mutexfree
- Perl_lock
+ Perl_sv_lock
)];
}
diff --git a/objXSUB.h b/objXSUB.h
index 4f51cb81ec..0209fd3900 100644
--- a/objXSUB.h
+++ b/objXSUB.h
@@ -1954,6 +1954,12 @@
#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
@@ -2277,10 +2283,6 @@
# 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
diff --git a/perlapi.c b/perlapi.c
index 29d669ade5..6a54b94b22 100644
--- 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
index a6f4efbeb7..0000000000
--- a/pod/Makefile
+++ /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
index 0000000000..17ba91a120
--- /dev/null
+++ b/pod/Makefile.SH
@@ -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
index 58bfc54fd7..0000000000
--- a/pod/buildtoc
+++ /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
index 0000000000..8e07ce856a
--- /dev/null
+++ b/pod/buildtoc.PL
@@ -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!
+
diff --git a/pod/perl.pod b/pod/perl.pod
index 49fdbf2d6d..ce0d1b4f00 100644
--- a/pod/perl.pod
+++ b/pod/perl.pod
@@ -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
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 78a631883e..bf59669b59 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -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
diff --git a/pod/perltoc.pod b/pod/perltoc.pod
index 5768081c90..2e23fc9116 100644
--- a/pod/perltoc.pod
+++ b/pod/perltoc.pod
@@ -301,6 +301,2197 @@ authors
=back
+=head2 perltoc - perl documentation table of contents
+
+=over
+
+=item DESCRIPTION
+
+=item BASIC DOCUMENTATION
+
+=over
+
+=item perl - Practical Extraction and Report Language
+
+SYNOPSIS, DESCRIPTION, AVAILABILITY, ENVIRONMENT, AUTHOR, FILES, SEE ALSO,
+DIAGNOSTICS, BUGS, NOTES
+
+=item perlfaq - frequently asked questions about Perl ($Date: 1999/05/23
+20:38:02 $)
+
+DESCRIPTION
+
+=back
+
+=back
+
+=head2 perlbook - Perl book information
+
+=over
+
+=item DESCRIPTION
+
+=back
+
+=head2 perlsyn - Perl syntax
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Declarations
+
+=item Simple statements
+
+=item Compound statements
+
+=item Loop Control
+
+=item For Loops
+
+=item Foreach Loops
+
+=item Basic BLOCKs and Switch Statements
+
+=item Goto
+
+=item PODs: Embedded Documentation
+
+=item Plain Old Comments (Not!)
+
+=back
+
+=back
+
+=head2 perldata - Perl data types
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Variable names
+
+=item Context
+
+=item Scalar values
+
+=item Scalar value constructors
+
+=item List value constructors
+
+=item Slices
+
+=item Typeglobs and Filehandles
+
+=back
+
+=item SEE ALSO
+
+=back
+
+=head2 perlop - Perl operators and precedence
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over
+
+=item Terms and List Operators (Leftward)
+
+=item The Arrow Operator
+
+=item Auto-increment and Auto-decrement
+
+=item Exponentiation
+
+=item Symbolic Unary Operators
+
+=item Binding Operators
+
+=item Multiplicative Operators
+
+=item Additive Operators
+
+=item Shift Operators
+
+=item Named Unary Operators
+
+=item Relational Operators
+
+=item Equality Operators
+
+=item Bitwise And
+
+=item Bitwise Or and Exclusive Or
+
+=item C-style Logical And
+
+=item C-style Logical Or
+
+=item Range Operators
+
+=item Conditional Operator
+
+=item Assignment Operators
+
+=item Comma Operator
+
+=item List Operators (Rightward)
+
+=item Logical Not
+
+=item Logical And
+
+=item Logical or and Exclusive Or
+
+=item C Operators Missing From Perl
+
+unary &, unary *, (TYPE)
+
+=item Quote and Quote-like Operators
+
+=item Regexp Quote-Like Operators
+
+?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 Gory details of parsing quoted constructs
+
+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 I/O Operators
+
+=item Constant Folding
+
+=item Bitwise String Operators
+
+=item Integer Arithmetic
+
+=item Floating-point Arithmetic
+
+=item Bigger Numbers
+
+=back
+
+=back
+
+=head2 perlreftut - Mark's very short tutorial about references
+
+=over
+
+=item DESCRIPTION
+
+=item Who Needs Complicated Data Structures?
+
+=item The Solution
+
+=item Syntax
+
+=over
+
+=item Making References
+
+=item Using References
+
+=back
+
+=item An Example
+
+=item Arrow Rule
+
+=item Solution
+
+=item The Rest
+
+=item Summary
+
+=item Credits
+
+=over
+
+=item Distribution Conditions
+
+=back
+
+=back
+
+=head2 perldsc - Perl Data Structures Cookbook
+
+=over
+
+=item DESCRIPTION
+
+arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes,
+more elaborate constructs
+
+=item REFERENCES
+
+=item COMMON MISTAKES
+
+=item CAVEAT ON PRECEDENCE
+
+=item WHY YOU SHOULD ALWAYS C<use strict>
+
+=item DEBUGGING
+
+=item CODE EXAMPLES
+
+=item ARRAYS OF ARRAYS
+
+=over
+
+=item Declaration of a ARRAY OF ARRAYS
+
+=item Generation of a ARRAY OF ARRAYS
+
+=item Access and Printing of a ARRAY OF ARRAYS
+
+=back
+
+=item HASHES OF ARRAYS
+
+=over
+
+=item Declaration of a HASH OF ARRAYS
+
+=item Generation of a HASH OF ARRAYS
+
+=item Access and Printing of a HASH OF ARRAYS
+
+=back
+
+=item ARRAYS OF HASHES
+
+=over
+
+=item Declaration of a ARRAY OF HASHES
+
+=item Generation of a ARRAY OF HASHES
+
+=item Access and Printing of a ARRAY OF HASHES
+
+=back
+
+=item HASHES OF HASHES
+
+=over
+
+=item Declaration of a HASH OF HASHES
+
+=item Generation of a HASH OF HASHES
+
+=item Access and Printing of a HASH OF HASHES
+
+=back
+
+=item MORE ELABORATE RECORDS
+
+=over
+
+=item Declaration of MORE ELABORATE RECORDS
+
+=item Declaration of a HASH OF COMPLEX RECORDS
+
+=item Generation of a HASH OF COMPLEX RECORDS
+
+=back
+
+=item Database Ties
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
+=head2 perllol - Manipulating Arrays of Arrays in Perl
+
+=over
+
+=item DESCRIPTION
+
+=item Declaration and Access of Arrays of Arrays
+
+=item Growing Your Own
+
+=item Access and Printing
+
+=item Slices
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
+=head2 perlrequick - Perl regular expressions quick start
+
+=over
+
+=item DESCRIPTION
+
+=item The Guide
+
+=over
+
+=item Simple word matching
+
+=item Using character classes
+
+\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 Matching this or that
+
+=item Grouping things and hierarchical matching
+
+=item Extracting matches
+
+=item Matching repetitions
+
+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 More matching
+
+=item Search and replace
+
+=item The split operator
+
+=back
+
+=item BUGS
+
+=item SEE ALSO
+
+=item AUTHOR AND COPYRIGHT
+
+=over
+
+=item Acknowledgments
+
+=back
+
+=back
+
+=head2 perlretut - Perl regular expressions tutorial
+
+=over
+
+=item DESCRIPTION
+
+=item Part 1: The basics
+
+=over
+
+=item Simple word matching
+
+=item Using character classes
+
+\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 Matching this or that
+
+=item Grouping things and hierarchical matching
+
+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 Extracting matches
+
+=item Matching repetitions
+
+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 Building a regexp
+
+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 Using regular expressions in Perl
+
+=back
+
+=item Part 2: Power tools
+
+=over
+
+=item More on characters, strings, and character classes
+
+=item Compiling and saving regular expressions
+
+=item Embedding comments and modifiers in a regular expression
+
+=item Non-capturing groupings
+
+=item Looking ahead and looking behind
+
+=item Using independent subexpressions to prevent backtracking
+
+=item Conditional expressions
+
+=item A bit of magic: executing Perl code in a regular expression
+
+=item Pragmas and debugging
+
+=back
+
+=item BUGS
+
+=item SEE ALSO
+
+=item AUTHOR AND COPYRIGHT
+
+=over
+
+=item Acknowledgments
+
+=back
+
+=back
+
+=head2 perllexwarn - Perl Lexical Warnings
+
+=over
+
+=item DESCRIPTION
+
+=over
+
+=item Default Warnings and Optional Warnings
+
+=item What's wrong with B<-w> and C<$^W>
+
+=item Controlling Warnings from the Command Line
+
+B<-w>, B<-W>, B<-X>
+
+=item Backward Compatibility
+
+=item Category Hierarchy
+
+=item Fatal Warnings
+
+=item Reporting Warnings from a Module
+
+=back
+
+=item TODO
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=back
+
+=head2 perldebug - Perl debugging
+
+=over
+
+=item DESCRIPTION
+
+=item The Perl Debugger
+
+=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
+
+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 Debugger input/output
+
+Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame
+listing
+
+=item Debugging compile-time statements
+
+=item Debugger Customization
+
+=item Readline Support
+
+=item Editor Support for Debugging
+
+=item The Perl Profiler
+
+=back
+
+=item Debugging regular expressions
+
+=item Debugging memory usage
+
+=item SEE ALSO
+
+=item BUGS
+
+=back
+
+=head2 perlrun - how to execute the Perl interpreter
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over
+
+=item #! and quoting on non-Unix systems
+
+OS/2, MS-DOS, Win95/NT, Macintosh, VMS
+
+=item Location of Perl
+
+=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 $)
@@ -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 Layout
-=item Unicode and UTF-8 support
+B::Bytecode, B::C, B::CC, B::Lint, B::Deparse, B::Xref
-=item Support for interpolating named characters
+=back
-=item "our" declarations
+=item Using The Back Ends
-=item Support for strings represented as a vector of ordinals
+=over
-=item Improved Perl version numbering system
+=item The Cross Referencing Back End
-=item New syntax for declaring subroutine attributes
+i, &, s, r
-=item File and directory handles can be autovivified
+=item The Decompiling Back End
-=item open() with more than two arguments
+=item The Lint Back End
-=item 64-bit support
+=item The Simple C Back End
-=item Large file support
+=item The Bytecode Back End
-=item Long doubles
+=item The Optimized C Back End
-=item "more bits"
+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 Enhanced support for sort() subroutines
+=back
-=item C<sort $coderef @foo> allowed
+=item KNOWN PROBLEMS
-=item File globbing implemented internally
+=item AUTHOR
-Support for CHECK blocks
+=back
-=item POSIX character class syntax [: :] supported
+=head2 perlembed - how to embed perl in your C program
-Better pseudo-random number generator
+=over
-=item Improved C<qw//> operator
+=item DESCRIPTION
-Better worst-case behavior of hashes
+=over
-=item pack() format 'Z' supported
+=item PREAMBLE
-=item pack() format modifier '!' supported
+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 pack() and unpack() support counted strings
+=item ROADMAP
-=item Comments in pack() templates
+=item Compiling your C program
-=item Weak references
+=item Adding a Perl interpreter to your C program
-=item Binary numbers supported
+=item Calling a Perl subroutine from your C program
-=item Lvalue subroutines
+=item Evaluating a Perl statement from your C program
-=item Some arrows may be omitted in calls through references
+=item Performing Perl pattern matches and substitutions from your C program
-=item Boolean assignment operators are legal lvalues
+=item Fiddling with the Perl stack from your C program
-=item exists() is supported on subroutine names
+=item Maintaining a persistent interpreter
-=item exists() and delete() are supported on array elements
+=item Maintaining multiple interpreter instances
-=item Pseudo-hashes work better
+=item Using Perl modules, which themselves use C libraries, from your C
+program
-=item Automatic flushing of output buffers
+=back
-=item Better diagnostics on meaningless filehandle operations
+=item Embedding Perl under Windows
-=item Where possible, buffered data discarded from duped input filehandle
+=item MORAL
-=item eof() has the same old magic as <>
+=item AUTHOR
-=item binmode() can be used to set :crlf and :raw modes
+=item COPYRIGHT
-=item C<-T> filetest recognizes UTF-8 encoded files as "text"
+=back
-=item system(), backticks and pipe open now reflect exec() failure
+=head2 perldebguts - Guts of Perl debugging
-=item Improved diagnostics
+=over
-=item Diagnostics follow STDERR
+=item DESCRIPTION
-More consistent close-on-exec behavior
+=item Debugger Internals
-=item syswrite() ease-of-use
+=over
-=item Better syntax checks on parenthesized unary operators
+=item Writing Your Own Debugger
-=item Bit operators support full native integer width
+=back
-=item Improved security features
+=item Frame Listing Output Examples
-More functional bareword prototype (*)
+=item Debugging regular expressions
-=item C<require> and C<do> may be overridden
+=over
-=item $^X variables may now have names longer than one character
+=item Compile-time output
-=item New variable $^C reflects C<-c> switch
+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 New variable $^V contains Perl version as a string
+=item Types of nodes
-=item Optional Y2K warnings
+=item Run-time output
=back
-=item Modules and Pragmata
+=item Debugging Perl memory usage
=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 Pragmata
-
-=back
+=item Using C<$ENV{PERL_DEBUG_MSTATS}>
-=item Utility Changes
+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>
-=over
+=item Example of using B<-DL> switch
-=item dprofpp
+C<717>, C<002>, C<054>, C<602>, C<702>, C<704>
-=item find2perl
+=item B<-DL> details
-=item h2xs
+C<!!!>, C<!!>, C<!>
-=item perlcc
+=item Limitations of B<-DL> statistics
-=item perldoc
+=back
-=item The Perl Debugger
+=item SEE ALSO
=back
-=item Improved Documentation
+=head2 perlxstut, perlXStut - Tutorial for writing XSUBs
-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
+=over
-=item Performance enhancements
+=item DESCRIPTION
-=over
+=item SPECIAL NOTES
-=item Simple sort() using { $a <=> $b } and the like are optimized
+=over
-=item Optimized assignments to lexical variables
+=item make
-=item Faster subroutine calls
+=item Version caveat
-delete(), each(), values() and hash iteration are faster
+=item Dynamic Loading versus Static Loading
=back
-=item Installation and Configuration Improvements
+=item TUTORIAL
=over
-=item -Dusethreads means something different
-
-=item New Configure flags
-
-=item Threadedness and 64-bitness now more daring
-
-=item Long Doubles
-
-=item -Dusemorebits
+=item EXAMPLE 1
-=item -Duselargefiles
+=item EXAMPLE 2
-=item installusrbinperl
+=item What has gone on?
-=item SOCKS support
+=item Writing good test scripts
-=item C<-A> flag
+=item EXAMPLE 3
-=item Enhanced Installation Directories
+=item What's new here?
-=back
+=item Input and Output Parameters
-=item Platform specific changes
+=item The XSUBPP Program
-=over
+=item The TYPEMAP file
-=item Supported platforms
+=item Warning about Output Arguments
-=item DOS
+=item EXAMPLE 4
-=item OS390 (OpenEdition MVS)
+=item What has happened here?
-=item VMS
+=item Anatomy of .xs file
-=item Win32
+=item Getting the fat out of XSUBs
-=back
+=item More about XSUB arguments
-=item Significant bug fixes
+=item The Argument Stack
-=over
+=item Extending your Extension
-=item <HANDLE> on empty files
+=item Documenting your Extension
-=item C<eval '...'> improvements
+=item Installing your Extension
-=item All compilation errors are true errors
+=item EXAMPLE 5
-=item Implicitly closed filehandles are safer
+=item New Things in this Example
-=item Behavior of list slices is more consistent
+=item EXAMPLE 6
-=item C<(\$)> prototype and C<$foo{a}>
+=item New Things in this Example
-=item C<goto &sub> and AUTOLOAD
+=item EXAMPLE 7 (Coming Soon)
-=item C<-bareword> allowed under C<use integer>
+=item EXAMPLE 8 (Coming Soon)
-=item Failures in DESTROY()
+=item EXAMPLE 9 (Coming Soon)
-=item Locale bugs fixed
+=item Troubleshooting these Examples
-=item Memory leaks
+=back
-=item Spurious subroutine stubs after failed subroutine calls
+=item See also
-=item Taint failures under C<-U>
+=item Author
-=item END blocks and the C<-c> switch
+=over
-=item Potential to leak DATA filehandles
+=item Last Changed
=back
-=item New or Changed Diagnostics
-
-"%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 New tests
+=back
-=item Incompatible Changes
+=head2 perlxs - XS language reference manual
=over
-=item Perl Source Incompatibilities
+=item DESCRIPTION
-CHECK is a new keyword, Treatment of list slices of undef has changed
+=over
-=item Format of $English::PERL_VERSION is different
+=item Introduction
-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 On The Road
-=item Semantics of bit operators may have changed on 64-bit platforms
+=item The Anatomy of an XSUB
-=item More builtins taint their results
+=item The Argument Stack
-=item C Source Incompatibilities
+=item The RETVAL Variable
-C<PERL_POLLUTE>, C<PERL_IMPLICIT_CONTEXT>, C<PERL_POLLUTE_MALLOC>
+=item The MODULE Keyword
-=item Compatible C Source API Changes
+=item The PACKAGE Keyword
-C<PATCHLEVEL> is now C<PERL_VERSION>
+=item The PREFIX Keyword
-=item Binary Incompatibilities
+=item The OUTPUT: Keyword
-=back
+=item The CODE: Keyword
-=item Known Problems
+=item The INIT: Keyword
-=over
+=item The NO_INIT Keyword
-=item Thread test failures
+=item Initializing Function Parameters
-=item EBCDIC platforms not supported
+=item Default Parameter Values
-=item In 64-bit HP-UX the lib/io_multihomed test may hang
+=item The PREINIT: Keyword
-=item NEXTSTEP 3.3 POSIX test failure
+=item The SCOPE: Keyword
-=item Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with
-gcc
+=item The INPUT: Keyword
-=item UNICOS/mk CC failures during Configure run
+=item Variable-length Parameter Lists
-=item Arrow operator and arrays
+=item The C_ARGS: Keyword
-=item Windows 2000
+=item The PPCODE: Keyword
-=item Experimental features
+=item Returning Undef And Empty Lists
-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 REQUIRE: Keyword
-=back
+=item The CLEANUP: Keyword
-=item Obsolete Diagnostics
+=item The BOOT: 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 VERSIONCHECK: Keyword
-=item Reporting Bugs
+=item The PROTOTYPES: Keyword
-=item SEE ALSO
+=item The PROTOTYPE: Keyword
-=item HISTORY
+=item The ALIAS: Keyword
-=back
+=item The INTERFACE: Keyword
-=head2 perldata - Perl data types
+=item The INTERFACE_MACRO: Keyword
-=over
+=item The INCLUDE: Keyword
-=item DESCRIPTION
+=item The CASE: Keyword
-=over
+=item The & Unary Operator
-=item Variable names
+=item Inserting Comments and C Preprocessor Directives
-=item Context
+=item Using XS With C++
-=item Scalar values
+=item Interface Strategy
-=item Scalar value constructors
+=item Perl Objects And C Structures
-=item List value constructors
+=item The Typemap
-=item Slices
+=back
-=item Typeglobs and Filehandles
+=item EXAMPLES
-=back
+=item XS VERSION
-=item SEE ALSO
+=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
-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<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 Portability
+=item CONVERTORS
-=item Alphabetical Listing of Perl Functions
+L<a2p|a2p>, L<s2p|s2p>, L<find2perl|find2perl>
-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 Development
+
+L<perlbug|perlbug>, L<h2ph|h2ph>, L<c2ph|c2ph> and L<pstruct|pstruct>,
+L<h2xs|h2xs>, L<dprofpp|dprofpp>, L<perlcc|perlcc>
+
+=item SEE ALSO
=back
=back
-=head2 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
-
-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 Mailing list archives
-=item Standard Modules
+=item Bug tracking system
-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
+=item Regression Tests
-=item Extension Modules
+Coverage, Regression, __DIE__, suidperl, The 25% slowdown from perl4 to
+perl5
=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
+=item Configure
=over
-=item Guidelines for Module Creation
+=item Install HTML
-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
+=back
-=item Guidelines for Converting Perl 4 Library Scripts into Modules
+=item Perl Language
-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
+=over
-=item Guidelines for Reusing Application Code
+=item our ($var)
-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 64-bit Perl
-=back
+=item Prototypes
-=item NOTE
+Named prototypes, Indirect objects, Method calls, Context, Scoped subs
=back
-=head2 perlmodinstall - Installing CPAN Modules
+=item Perl Internals
=over
-=item DESCRIPTION
+=item magic_setisa
-=over
+=item Garbage Collection
-=item PREAMBLE
+=item Reliable signals
-B<DECOMPRESS> the file, B<UNPACK> the file into a directory, B<BUILD> the
-module (sometimes unnecessary), B<INSTALL> the module
+Alternate runops() for signal despatch, Figure out how to die() in delayed
+sighandler, Add tests for Thread::Signal, Automatic tests against CPAN
-=back
+=item Interpolated regex performance bugs
-=item HEY
+=item Memory leaks from failed eval/regcomp
-=item AUTHOR
+=item Make XS easier to use
-=item COPYRIGHT
+=item Make embedded Perl easier to use
-=back
+=item Namespace cleanup
-=head2 perlfork - Perl's fork() emulation
+=item MULTIPLICITY
-=over
+=item MacPerl
-=item SYNOPSIS
+=back
-=item DESCRIPTION
+=item Documentation
=over
-=item Behavior of other Perl features in forked pseudo-processes
+=item A clear division into tutorial and reference
-$$ 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 Remove the artificial distinction between operators and functions
-=item Resource limits
+=item More tutorials
-=item Killing the parent process
+Regular expressions, I/O, pack/unpack, Debugging
-=item Lifetime of the parent process and pseudo-processes
+=item Include a search tool
-=item CAVEATS AND LIMITATIONS
+=item Include a locate tool
-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 Separate function manpages by default
-=back
+=item Users can't find the manpages
-=item BUGS
+=item Install ALL Documentation
-=item AUTHOR
+=item Outstanding issues to be documented
-=item SEE ALSO
+=item Adapt www.linuxhq.com for Perl
+
+=item Replace man with a perl program
+
+=item Unicode tutorial
=back
-=head2 perlform - Perl formats
+=item Modules
=over
-=item DESCRIPTION
+=item Update the POSIX extension to conform with the POSIX 1003.1 Edition 2
-=over
+=item Module versions
-=item Format Variables
+=item New modules
-=back
+=item Profiler
-=item NOTES
+=item Tie Modules
-=over
+VecArray, SubstrArray, VirtualArray, ShiftSplice
-=item Footers
+=item Procedural options
-=item Accessing Formatting Internals
+=item RPC
-=back
+=item y2k localtime/gmtime
-=item WARNINGS
+=item Export File::Find variables
-=back
+=item Ioctl
-=head2 perllocale - Perl locale handling (internationalization and
-localization)
+=item Debugger attach/detach
-=over
+=item Regular Expression debugger
-=item DESCRIPTION
+=item Alternative RE Syntax
-=item PREPARING TO USE LOCALES
+=item Bundled modules
-=item USING LOCALES
+=item Expect
-=over
+=item GUI::Native
-=item The use locale pragma
+=item Update semibroken auxiliary tools; h2ph, a2p, etc.
-=item The setlocale function
+=item POD Converters
-=item Finding locales
+=item pod2html
-=item LOCALE PROBLEMS
+=item Podchecker
-=item Temporarily fixing locale problems
+=back
-=item Permanently fixing locale problems
+=item Tom's Wishes
-=item Permanently fixing your system's locale configuration
+=over
-=item Fixing system locale configuration
+=item Webperl
-=item The localeconv function
+=item Mobile agents
+
+=item POSIX on non-POSIX
+
+=item Portable installations
=back
-=item LOCALE CATEGORIES
+=item Win32 Stuff
=over
-=item Category LC_COLLATE: Collation
+=item Rename new headers to be consistent with the rest
-=item Category LC_CTYPE: Character Types
+=item Sort out the spawnvp() mess
-=item Category LC_NUMERIC: Numeric Formatting
+=item Work out DLL versioning
-=item Category LC_MONETARY: Formatting of monetary amounts
+=item Style-check
-=item LC_TIME
+=back
-=item Other categories
+=item Would be nice to have
-=back
+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 SECURITY
+=item Possible pragmas
-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 'less'
-PERL_BADLANG, LC_ALL, LANGUAGE, LC_CTYPE, LC_COLLATE, LC_MONETARY,
-LC_NUMERIC, LC_TIME, LANG
+=back
-=item NOTES
+=item Optimizations
=over
-=item Backward compatibility
+=item constant function cache
-=item I18N:Collate obsolete
+=item foreach(reverse...)
-=item Sort speed and memory use impacts
+=item Cache eval tree
-=item write() and LC_NUMERIC
+=item rcatmaybe
-=item Freely available locale definitions
+=item Shrink opcode tables
-=item I18n and l10n
+=item Cache hash value
-=item An imperfect standard
+=item Optimize away @_ where possible
+
+=item Optimize sort by { $a <=> $b }
+
+=item Rewrite regexp parser for better integrated optimization
=back
-=item BUGS
+=item Vague possibilities
+
+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 To Do Or Not To Do
=over
-=item Broken systems
+=item Making my() work on "package" variables
-=back
+=item "or" testing defined not truth
-=item SEE ALSO
+=item "dynamic" lexicals
-=item HISTORY
+=item "class"-based, rather than package-based "lexicals"
=back
-=head2 perlref - Perl references and nested data structures
+=item Threading
=over
-=item NOTE
+=item Modules
-=item DESCRIPTION
+=item Testing
-=over
+=item $AUTOLOAD
-=item Making References
-
-=item Using References
+=item exit/die
-=item Symbolic references
+=item External threads
-=item Not-so-symbolic references
+=item Thread::Pool
-=item Pseudo-hashes: Using an array as a hash
+=item thread-safety
-=item Function Templates
+=item Per-thread GVs
=back
-=item WARNING
+=item Compiler
-=item SEE ALSO
+=over
-=back
+=item Optimization
-=head2 perlreftut - Mark's very short tutorial about references
+=item Byteperl
-=over
+=item Precompiled modules
-=item DESCRIPTION
+=item Executables
-=item Who Needs Complicated Data Structures?
+=item Typed lexicals
-=item The Solution
+=item Win32
-=item Syntax
+=item END blocks
-=over
+=item _AUTOLOAD
-=item Making References
+=item comppadlist
-=item Using References
+=item Cached compilation
=back
-=item An Example
+=item Recently Finished Tasks
-=item Arrow Rule
+=over
-=item Solution
+=item Figure a way out of $^(capital letter)
-=item The Rest
+=item Filenames
-=item Summary
+=item Foreign lines
-=item Credits
+=item Namespace cleanup
-=over
+=item ISA.pm
-=item Distribution Conditions
+=item gettimeofday
+
+=item autocroak?
=back
=back
-=head2 perldsc - Perl Data Structures Cookbook
+=head2 perlhack - How to hack at the Perl internals
=over
=item DESCRIPTION
-arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes,
-more elaborate constructs
+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 REFERENCES
+=item AUTHOR
-=item COMMON MISTAKES
+=back
-=item CAVEAT ON PRECEDENCE
+=head2 perlhist - the Perl history records
-=item WHY YOU SHOULD ALWAYS C<use strict>
+=over
-=item DEBUGGING
+=item DESCRIPTION
-=item CODE EXAMPLES
+=item INTRODUCTION
-=item ARRAYS OF ARRAYS
+=item THE KEEPERS OF THE PUMPKIN
=over
-=item Declaration of a ARRAY OF ARRAYS
-
-=item Generation of a ARRAY OF ARRAYS
-
-=item Access and Printing of a ARRAY OF ARRAYS
+=item PUMPKIN?
=back
-=item HASHES OF ARRAYS
+=item THE RECORDS
=over
-=item Declaration of a HASH OF ARRAYS
+=item SELECTED RELEASE SIZES
-=item Generation of a HASH OF ARRAYS
+=item SELECTED PATCH SIZES
-=item Access and Printing of a HASH OF ARRAYS
+=back
+
+=item THE KEEPERS OF THE RECORDS
=back
-=item ARRAYS OF HASHES
+=head2 perldelta - what's new for perl v5.6.0
=over
-=item Declaration of a ARRAY OF HASHES
-
-=item Generation of a ARRAY OF HASHES
+=item DESCRIPTION
-=item Access and Printing of a ARRAY OF HASHES
+=item Core Enhancements
-=back
+=over
-=item HASHES OF HASHES
+=item Interpreter cloning, threads, and concurrency
-=over
+=item Lexically scoped warning categories
-=item Declaration of a HASH OF HASHES
+=item Unicode and UTF-8 support
-=item Generation of a HASH OF HASHES
+=item Support for interpolating named characters
-=item Access and Printing of a HASH OF HASHES
+=item "our" declarations
-=back
+=item Support for strings represented as a vector of ordinals
-=item MORE ELABORATE RECORDS
+=item Improved Perl version numbering system
-=over
+=item New syntax for declaring subroutine attributes
-=item Declaration of MORE ELABORATE RECORDS
+=item File and directory handles can be autovivified
-=item Declaration of a HASH OF COMPLEX RECORDS
+=item open() with more than two arguments
-=item Generation of a HASH OF COMPLEX RECORDS
+=item 64-bit support
-=back
+=item Large file support
-=item Database Ties
+=item Long doubles
-=item SEE ALSO
+=item "more bits"
-=item AUTHOR
+=item Enhanced support for sort() subroutines
-=back
+=item C<sort $coderef @foo> allowed
-=head2 perllol - Manipulating Arrays of Arrays in Perl
+=item File globbing implemented internally
-=over
+Support for CHECK blocks
-=item DESCRIPTION
+=item POSIX character class syntax [: :] supported
-=item Declaration and Access of Arrays of Arrays
+Better pseudo-random number generator
-=item Growing Your Own
+=item Improved C<qw//> operator
-=item Access and Printing
+Better worst-case behavior of hashes
-=item Slices
+=item pack() format 'Z' supported
-=item SEE ALSO
+=item pack() format modifier '!' supported
-=item AUTHOR
+=item pack() and unpack() support counted strings
-=back
+=item Comments in pack() templates
-=head2 perlboot - Beginner's Object-Oriented Tutorial
+=item Weak references
-=over
+=item Binary numbers supported
-=item DESCRIPTION
+=item Lvalue subroutines
-=over
+=item Some arrows may be omitted in calls through references
-=item If we could talk to the animals...
+=item Boolean assignment operators are legal lvalues
-=item Introducing the method invocation arrow
+=item exists() is supported on subroutine names
-=item Invoking a barnyard
+=item exists() and delete() are supported on array elements
-=item The extra parameter of method invocation
+=item Pseudo-hashes work better
-=item Calling a second method to simplify things
+=item Automatic flushing of output buffers
-=item Inheriting the windpipes
+=item Better diagnostics on meaningless filehandle operations
-=item A few notes about @ISA
+=item Where possible, buffered data discarded from duped input filehandle
-=item Overriding the methods
+=item eof() has the same old magic as <>
-=item Starting the search from a different place
+=item binmode() can be used to set :crlf and :raw modes
-=item The SUPER way of doing things
+=item C<-T> filetest recognizes UTF-8 encoded files as "text"
-=item Where we're at so far...
+=item system(), backticks and pipe open now reflect exec() failure
-=item A horse is a horse, of course of course -- or is it?
+=item Improved diagnostics
-=item Invoking an instance method
+=item Diagnostics follow STDERR
-=item Accessing the instance data
+More consistent close-on-exec behavior
-=item How to build a horse
+=item syswrite() ease-of-use
-=item Inheriting the constructor
+=item Better syntax checks on parenthesized unary operators
-=item Making a method work with either classes or instances
+=item Bit operators support full native integer width
-=item Adding parameters to a method
+=item Improved security features
-=item More interesting instances
+More functional bareword prototype (*)
-=item A horse of a different color
+=item C<require> and C<do> may be overridden
-=item Summary
+=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 COPYRIGHT
+=item Optional Y2K warnings
=back
-=head2 perltoot - Tom's object-oriented tutorial for perl
+=item Modules and Pragmata
=over
-=item DESCRIPTION
+=item Modules
-=item Creating a Class
+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 Pragmata
+
+=back
+
+=item Utility Changes
=over
-=item Object Representation
+=item dprofpp
-=item Class Interface
+=item find2perl
-=item Constructors and Instance Methods
+=item h2xs
-=item Planning for the Future: Better Constructors
+=item perlcc
-=item Destructors
+=item perldoc
-=item Other Object Methods
+=item The Perl Debugger
=back
-=item Class Data
+=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 Performance enhancements
=over
-=item Accessing Class Data
+=item Simple sort() using { $a <=> $b } and the like are optimized
-=item Debugging Methods
+=item Optimized assignments to lexical variables
-=item Class Destructors
+=item Faster subroutine calls
-=item Documenting the Interface
+delete(), each(), values() and hash iteration are faster
=back
-=item Aggregation
-
-=item Inheritance
+=item Installation and Configuration Improvements
=over
-=item Overridden Methods
+=item -Dusethreads means something different
-=item Multiple Inheritance
+=item New Configure flags
-=item UNIVERSAL: The Root of All Objects
+=item Threadedness and 64-bitness now more daring
-=back
+=item Long Doubles
-=item Alternate Object Representations
+=item -Dusemorebits
-=over
+=item -Duselargefiles
-=item Arrays as Objects
+=item installusrbinperl
-=item Closures as Objects
+=item SOCKS support
+
+=item C<-A> flag
+
+=item Enhanced Installation Directories
=back
-=item AUTOLOAD: Proxy Methods
+=item Platform specific changes
=over
-=item Autoloaded Data Methods
+=item Supported platforms
-=item Inherited Autoloaded Data Methods
+=item DOS
+
+=item OS390 (OpenEdition MVS)
+
+=item VMS
+
+=item Win32
=back
-=item Metaclassical Tools
+=item Significant bug fixes
=over
-=item Class::Struct
+=item <HANDLE> on empty files
-=item Data Members as Variables
+=item C<eval '...'> improvements
-=item NOTES
+=item All compilation errors are true errors
-=item Object Terminology
+=item Implicitly closed filehandles are safer
-=back
+=item Behavior of list slices is more consistent
-=item SEE ALSO
+=item C<(\$)> prototype and C<$foo{a}>
-=item AUTHOR AND COPYRIGHT
+=item C<goto &sub> and AUTOLOAD
-=item COPYRIGHT
+=item C<-bareword> allowed under C<use integer>
-=over
+=item Failures in DESTROY()
-=item Acknowledgments
+=item Locale bugs fixed
-=back
+=item Memory leaks
+
+=item Spurious subroutine stubs after failed subroutine calls
+
+=item Taint failures under C<-U>
+
+=item END blocks and the C<-c> switch
+
+=item Potential to leak DATA filehandles
=back
-=head2 perltootc - Tom's OO Tutorial for Class Data in Perl
+=item New or Changed Diagnostics
-=over
+(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 DESCRIPTION
+=item New tests
-=item Class Data as Package Variables
+=item Incompatible Changes
=over
-=item Putting All Your Eggs in One Basket
+=item Perl Source Incompatibilities
-=item Inheritance Concerns
+CHECK is a new keyword, Treatment of list slices of undef has changed
-=item The Eponymous Meta-Object
+=item Format of $English::PERL_VERSION is different
-=item Indirect References to Class Data
+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 Monadic Classes
+=item Semantics of bit operators may have changed on 64-bit platforms
-=item Translucent Attributes
+=item More builtins taint their results
+
+=item C Source Incompatibilities
+
+C<PERL_POLLUTE>, C<PERL_IMPLICIT_CONTEXT>, C<PERL_POLLUTE_MALLOC>
+
+=item Compatible C Source API Changes
+
+C<PATCHLEVEL> is now C<PERL_VERSION>
+
+=item Binary Incompatibilities
=back
-=item Class Data as Lexical Variables
+=item Known Problems
=over
-=item Privacy and Responsibility
+=item Thread test failures
-=item File-Scoped Lexicals
+=item EBCDIC platforms not supported
-=item More Inheritance Concerns
+=item In 64-bit HP-UX the lib/io_multihomed test may hang
-=item Locking the Door and Throwing Away the Key
+=item NEXTSTEP 3.3 POSIX test failure
-=item Translucency Revisited
+=item Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with
+gcc
+
+=item UNICOS/mk CC failures during Configure run
+
+=item Arrow operator and arrays
+
+=item Windows 2000
+
+=item Experimental features
+
+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 NOTES
+=item Obsolete Diagnostics
-=item SEE ALSO
+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 AUTHOR AND COPYRIGHT
+=item Reporting Bugs
-=item ACKNOWLEDGEMENTS
+=item SEE ALSO
=item HISTORY
=back
-=head2 perlobj - Perl objects
+=head2 perl56delta, perldelta - what's new for perl v5.6.0
=over
=item DESCRIPTION
+=item Core Enhancements
+
=over
-=item An Object is Simply a Reference
+=item Interpreter cloning, threads, and concurrency
-=item A Class is Simply a Package
+=item Lexically scoped warning categories
-=item A Method is Simply a Subroutine
+=item Unicode and UTF-8 support
-=item Method Invocation
+=item Support for interpolating named characters
-=item WARNING
+=item "our" declarations
-=item Default UNIVERSAL methods
+=item Support for strings represented as a vector of ordinals
-isa(CLASS), can(METHOD), VERSION( [NEED] )
+=item Improved Perl version numbering system
-=item Destructors
+=item New syntax for declaring subroutine attributes
-=item Summary
+=item File and directory handles can be autovivified
-=item Two-Phased Garbage Collection
+=item open() with more than two arguments
-=back
+=item 64-bit support
-=item SEE ALSO
+=item Large file support
-=back
+=item Long doubles
-=head2 perltie - how to hide an object class in a simple variable
+=item "more bits"
-=over
+=item Enhanced support for sort() subroutines
-=item SYNOPSIS
+=item C<sort $coderef @foo> allowed
-=item DESCRIPTION
+=item File globbing implemented internally
-=over
+=item Support for CHECK blocks
-=item Tying Scalars
+=item POSIX character class syntax [: :] supported
-TIESCALAR classname, LIST, FETCH this, STORE this, value, DESTROY this
+=item Better pseudo-random number generator
-=item Tying Arrays
+=item Improved C<qw//> operator
-TIEARRAY classname, LIST, FETCH this, index, STORE this, index, value,
-DESTROY this
+=item Better worst-case behavior of hashes
-=item Tying Hashes
+=item pack() format 'Z' supported
-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 pack() format modifier '!' supported
-=item Tying FileHandles
+=item pack() and unpack() support counted strings
-TIEHANDLE classname, LIST, WRITE this, LIST, PRINT this, LIST, PRINTF this,
-LIST, READ this, LIST, READLINE this, GETC this, CLOSE this, DESTROY this
+=item Comments in pack() templates
-=item The C<untie> Gotcha
+=item Weak references
-=back
+=item Binary numbers supported
-=item SEE ALSO
+=item Lvalue subroutines
-=item BUGS
+=item Some arrows may be omitted in calls through references
-=item AUTHOR
+=item Boolean assignment operators are legal lvalues
-=back
+=item exists() is supported on subroutine names
-=head2 perlbot - Bag'o Object Tricks (the BOT)
+=item exists() and delete() are supported on array elements
-=over
+=item Pseudo-hashes work better
-=item DESCRIPTION
+=item Automatic flushing of output buffers
-=item OO SCALING TIPS
+=item Better diagnostics on meaningless filehandle operations
-=item INSTANCE VARIABLES
+=item Where possible, buffered data discarded from duped input filehandle
-=item INSTANCE VARIABLE INHERITANCE
+=item eof() has the same old magic as <>
-=item OBJECT RELATIONSHIPS
+=item binmode() can be used to set :crlf and :raw modes
-=item OVERRIDING SUPERCLASS METHODS
+=item C<-T> filetest recognizes UTF-8 encoded files as "text"
-=item USING RELATIONSHIP WITH SDBM
+=item system(), backticks and pipe open now reflect exec() failure
-=item THINKING OF CODE REUSE
+=item Improved diagnostics
-=item CLASS CONTEXT AND THE OBJECT
+=item Diagnostics follow STDERR
-=item INHERITING A CONSTRUCTOR
+=item More consistent close-on-exec behavior
-=item DELEGATION
+=item syswrite() ease-of-use
-=back
+=item Better syntax checks on parenthesized unary operators
-=head2 perlipc - Perl interprocess communication (signals, fifos, pipes,
-safe subprocesses, sockets, and semaphores)
+=item Bit operators support full native integer width
-=over
+=item Improved security features
-=item DESCRIPTION
+=item More functional bareword prototype (*)
-=item Signals
+=item C<require> and C<do> may be overridden
-=item Named Pipes
+=item $^X variables may now have names longer than one character
-=over
+=item New variable $^C reflects C<-c> switch
-=item WARNING
+=item New variable $^V contains Perl version as a string
+
+=item Optional Y2K warnings
+
+=item Arrays now always interpolate into double-quoted strings
=back
-=item Using open() for IPC
+=item Modules and Pragmata
=over
-=item Filehandles
+=item Modules
-=item Background Processes
+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 Complete Dissociation of Child from Parent
+=item Pragmata
-=item Safe Pipe Opens
+=back
-=item Bidirectional Communication with Another Process
+=item Utility Changes
-=item Bidirectional Communication with Yourself
+=over
-=back
+=item dprofpp
-=item Sockets: Client/Server Communication
+=item find2perl
-=over
+=item h2xs
-=item Internet Line Terminators
+=item perlcc
-=item Internet TCP Clients and Servers
+=item perldoc
-=item Unix-Domain TCP Clients and Servers
+=item The Perl Debugger
=back
-=item TCP Clients with IO::Socket
+=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 Performance enhancements
=over
-=item A Simple Client
+=item Simple sort() using { $a <=> $b } and the like are optimized
-C<Proto>, C<PeerAddr>, C<PeerPort>
+=item Optimized assignments to lexical variables
-=item A Webget Client
+=item Faster subroutine calls
-=item Interactive Client with IO::Socket
+=item delete(), each(), values() and hash iteration are faster
=back
-=item TCP Servers with IO::Socket
+=item Installation and Configuration Improvements
-Proto, LocalPort, Listen, Reuse
+=over
-=item UDP: Message Passing
+=item -Dusethreads means something different
-=item SysV IPC
+=item New Configure flags
-=item NOTES
+=item Threadedness and 64-bitness now more daring
-=item BUGS
+=item Long Doubles
-=item AUTHOR
+=item -Dusemorebits
-=item SEE ALSO
+=item -Duselargefiles
-=back
+=item installusrbinperl
-=head2 perldbmfilter - Perl DBM Filters
+=item SOCKS support
-=over
+=item C<-A> flag
-=item SYNOPSIS
+=item Enhanced Installation Directories
-=item DESCRIPTION
+=back
-B<filter_store_key>, B<filter_store_value>, B<filter_fetch_key>,
-B<filter_fetch_value>
+=item Platform specific changes
=over
-=item The Filter
-
-=item An Example -- the NULL termination problem.
+=item Supported platforms
-=item Another Example -- Key is a C int.
+=item DOS
-=back
+=item OS390 (OpenEdition MVS)
-=item SEE ALSO
+=item VMS
-=item AUTHOR
+=item Win32
=back
-=head2 perldebug - Perl debugging
+=item Significant bug fixes
=over
-=item DESCRIPTION
-
-=item The Perl Debugger
+=item <HANDLE> on empty files
-=over
+=item C<eval '...'> improvements
-=item Debugger Commands
+=item All compilation errors are true errors
-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 Implicitly closed filehandles are safer
-=item Configurable Options
+=item Behavior of list slices is more consistent
-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 C<(\$)> prototype and C<$foo{a}>
-=item Debugger input/output
+=item C<goto &sub> and AUTOLOAD
-Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame
-listing
+=item C<-bareword> allowed under C<use integer>
-=item Debugging compile-time statements
+=item Failures in DESTROY()
-=item Debugger Customization
+=item Locale bugs fixed
-=item Readline Support
+=item Memory leaks
-=item Editor Support for Debugging
+=item Spurious subroutine stubs after failed subroutine calls
-=item The Perl Profiler
+=item Taint failures under C<-U>
-=back
+=item END blocks and the C<-c> switch
-=item Debugging regular expressions
+=item Potential to leak DATA filehandles
-=item Debugging memory usage
+=back
-=item SEE ALSO
+=item New or Changed Diagnostics
-=item BUGS
+"%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
-=back
+=item New tests
-=head2 perlnumber - semantics of numbers and numeric operations in Perl
+=item Incompatible Changes
=over
-=item SYNOPSIS
-
-=item DESCRIPTION
+=item Perl Source Incompatibilities
-=item Storing numbers
+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 Numeric operators and numeric conversions
+=item C Source Incompatibilities
-=item Flavors of Perl numeric operations
+C<PERL_POLLUTE>, C<PERL_IMPLICIT_CONTEXT>, C<PERL_POLLUTE_MALLOC>
-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 Compatible C Source API Changes
-=item AUTHOR
+C<PATCHLEVEL> is now C<PERL_VERSION>
-=item SEE ALSO
+=item Binary Incompatibilities
=back
-=head2 perldebguts - Guts of Perl debugging
+=item Known Problems
=over
-=item DESCRIPTION
+=item Thread test failures
-=item Debugger Internals
+=item EBCDIC platforms not supported
-=over
+=item In 64-bit HP-UX the lib/io_multihomed test may hang
-=item Writing Your Own Debugger
+=item NEXTSTEP 3.3 POSIX test failure
-=back
+=item Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with
+gcc
-=item Frame Listing Output Examples
+=item UNICOS/mk CC failures during Configure run
-=item Debugging regular expressions
+=item Arrow operator and arrays
-=over
+=item Experimental features
-=item Compile-time output
+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 })>
-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)>
+=back
-=item Types of nodes
+=item Obsolete Diagnostics
-=item Run-time output
+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 HISTORY
=back
-=item Debugging Perl memory usage
+=head2 perl5005delta, perldelta - what's new for perl5.005
=over
-=item Using C<$ENV{PERL_DEBUG_MSTATS}>
+=item DESCRIPTION
-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 About the new versioning system
-=item Example of using B<-DL> switch
+=item Incompatible Changes
-C<717>, C<002>, C<054>, C<602>, C<702>, C<704>
+=over
-=item B<-DL> details
+=item WARNING: This version is not binary compatible with Perl 5.004.
-C<!!!>, C<!!>, C<!>
+=item Default installation structure has changed
-=item Limitations of B<-DL> statistics
+=item Perl Source Compatibility
-=back
+=item C Source Compatibility
-=item SEE ALSO
+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
-=back
+=item Binary Compatibility
-=head2 perldiag - various Perl diagnostics
+=item Security fixes may affect compatibility
-=over
+=item Relaxed new mandatory warnings introduced in 5.004
-=item DESCRIPTION
+=item Licensing
=back
-=head2 perlsec - Perl security
+=item Core Changes
=over
-=item DESCRIPTION
+=item Threads
-=over
+=item Compiler
-=item Laundering and Detecting Tainted Data
+=item Regular Expressions
-=item Switches On the "#!" Line
+Many new and improved optimizations, Many bug fixes, New regular expression
+constructs, New operator for precompiled regular expressions, Other
+improvements, Incompatible changes
-=item Cleaning Up Your Path
+=item Improved malloc()
-=item Security Bugs
+=item Quicksort is internally implemented
-=item Protecting Your Programs
+=item Reliable signals
-=back
+=item Reliable stack pointers
-=item SEE ALSO
+=item More generous treatment of carriage returns
-=back
+=item Memory leaks
-=head2 perltrap - Perl traps for the unwary
+=item Better support for multiple interpreters
-=over
+=item Behavior of local() on array and hash elements is now well-defined
-=item DESCRIPTION
+=item C<%!> is transparently tied to the L<Errno> module
-=over
+=item Pseudo-hashes are supported
-=item Awk Traps
+=item C<EXPR foreach EXPR> is supported
-=item C Traps
+=item Keywords can be globally overridden
-=item Sed Traps
+=item C<$^E> is meaningful on Win32
-=item Shell Traps
+=item C<foreach (1..1000000)> optimized
-=item Perl Traps
+=item C<Foo::> can be used as implicitly quoted package name
-=item Perl4 to Perl5 Traps
+=item C<exists $Foo::{Bar::}> tests existence of a package
-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 Better locale support
-=item Discontinuance, Deprecation, and BugFix traps
+=item Experimental support for 64-bit platforms
-Discontinuance, Deprecation, BugFix, Discontinuance, Discontinuance,
-Discontinuance, BugFix, Discontinuance, Discontinuance, BugFix,
-Discontinuance, Deprecation, Discontinuance, Discontinuance
+=item prototype() returns useful results on builtins
-=item Parsing Traps
+=item Extended support for exception handling
-Parsing, Parsing, Parsing, Parsing
+=item Re-blessing in DESTROY() supported for chaining DESTROY() methods
-=item Numerical Traps
+=item All C<printf> format conversions are handled internally
-Numerical, Numerical, Numerical, Bitwise string ops
+=item New C<INIT> keyword
-=item General data type traps
+=item New C<lock> keyword
-(Arrays), (Arrays), (Hashes), (Globs), (Globs), (Scalar String),
-(Constants), (Scalars), (Variable Suicide)
+=item New C<qr//> operator
-=item Context Traps - scalar, list contexts
+=item C<our> is now a reserved word
-(list context), (scalar context), (scalar context), (list, builtin)
+=item Tied arrays are now fully supported
-=item Precedence Traps
+=item Tied handles support is better
-Precedence, Precedence, Precedence, Precedence, Precedence, Precedence,
-Precedence
+=item 4th argument to substr
-=item General Regular Expression Traps using s///, etc.
+=item Negative LENGTH argument to splice
-Regular Expression, Regular Expression, Regular Expression, Regular
-Expression, Regular Expression, Regular Expression, Regular Expression,
-Regular Expression
+=item Magic lvalues are now more magical
-=item Subroutine, Signal, Sorting Traps
+=item <> now reads in records
-(Signals), (Sort Subroutine), warn() won't let you specify a filehandle
+=back
-=item OS Traps
+=item Supported Platforms
-(SysV), (SysV)
+=over
-=item Interpolation Traps
+=item New Platforms
-Interpolation, Interpolation, Interpolation, Interpolation, Interpolation,
-Interpolation, Interpolation, Interpolation, Interpolation
+=item Changes in existing support
-=item DBM Traps
+=back
-DBM, DBM
+=item Modules and Pragmata
-=item Unclassified Traps
+=over
-C<require>/C<do> trap using returned value, C<split> on empty string with
-LIMIT specified
+=item New Modules
+
+B, Data::Dumper, Dumpvalue, Errno, File::Spec, ExtUtils::Installed,
+ExtUtils::Packlist, Fatal, IPC::SysV, Test, Tie::Array, Tie::Handle,
+Thread, attrs, fields, re
+
+=item Changes in existing modules
+
+Benchmark, Carp, CGI, Fcntl, Math::Complex, Math::Trig, POSIX, DB_File,
+MakeMaker, CPAN, Cwd, Benchmark
=back
+=item Utility Changes
+
+=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
+
+=item Obsolete Diagnostics
+
+Can't mktemp(), Can't write to temp file for B<-e>: %s, Cannot open
+temporary file, regexp too big
+
+=item Configuration Changes
+
+=item BUGS
+
+=item SEE ALSO
+
+=item HISTORY
+
=back
-=head2 perlport - Writing portable Perl
+=head2 perl5004delta, perldelta - what's new for perl5.004
=over
=item DESCRIPTION
-Not all Perl programs have to be portable, Nearly all of Perl already I<is>
-portable
+=item Supported Environments
-=item ISSUES
+=item Core Changes
=over
-=item Newlines
+=item List assignment to %ENV works
-=item Numbers endianness and Width
+=item "Can't locate Foo.pm in @INC" error now lists @INC
-=item Files and Filesystems
+=item Compilation option: Binary compatibility with 5.003
-=item System Interaction
+=item $PERL5OPT environment variable
-=item Interprocess Communication (IPC)
+=item Limitations on B<-M>, B<-m>, and B<-T> options
-=item External Subroutines (XS)
+=item More precise warnings
-=item Standard Modules
+=item Deprecated: Inherited C<AUTOLOAD> for non-methods
-=item Time and Date
+=item Previously deprecated %OVERLOAD is no longer usable
-=item Character sets and character encoding
+=item Subroutine arguments created only when they're modified
-=item Internationalisation
+=item Group vector changeable with C<$)>
-=item System Resources
+=item Fixed parsing of $$<digit>, &$<digit>, etc.
-=item Security
+=item Fixed localization of $<digit>, $&, etc.
-=item Style
+=item No resetting of $. on implicit close
-=back
+=item C<wantarray> may return undef
-=item CPAN Testers
+=item C<eval EXPR> determines value of EXPR in scalar context
-Mailing list: cpan-testers@perl.org, Testing results:
-http://testers.cpan.org/
+=item Changes to tainting checks
-=item PLATFORMS
+No glob() or <*>, No spawning if tainted $CDPATH, $ENV, $BASH_ENV, No
+spawning if tainted $TERM doesn't look like a terminal name
-=over
+=item New Opcode module and revised Safe module
-=item Unix
+=item Embedding improvements
-=item DOS and Derivatives
+=item Internal change: FileHandle class based on IO::* classes
-Build instructions for OS/2, L<perlos2>
+=item Internal change: PerlIO abstraction interface
-=item S<Mac OS>
+=item New and changed syntax
-=item VMS
+$coderef->(PARAMS)
-=item VOS
+=item New and changed builtin constants
-=item EBCDIC Platforms
+__PACKAGE__
-=item Acorn RISC OS
+=item New and changed builtin variables
-=item Other perls
+$^E, $^H, $^M
-=back
+=item New and changed builtin functions
-=item FUNCTION IMPLEMENTATIONS
+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
-=over
+=item New builtin methods
-=item Alphabetical Listing of Perl Functions
+isa(CLASS), can(METHOD), VERSION( [NEED] )
--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 TIEHANDLE now supported
+
+TIEHANDLE classname, LIST, PRINT this, LIST, PRINTF this, LIST, READ this
+LIST, READLINE this, GETC this, DESTROY this
+
+=item Malloc enhancements
+
+-DPERL_EMERGENCY_SBRK, -DPACK_MALLOC, -DTWO_POT_OPTIMIZE
+
+=item Miscellaneous efficiency enhancements
=back
-=item CHANGES
+=item Support for More Operating Systems
-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
+=over
-=item Supported Platforms
+=item Win32
-=item SEE ALSO
+=item Plan 9
-=item AUTHORS / CONTRIBUTORS
+=item QNX
-=item VERSION
+=item AmigaOS
=back
-=head2 perlstyle - Perl style guide
+=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 DESCRIPTION
+=item Required Updates
+
+=item Installation directories
+
+=item Module information summary
+
+=item Fcntl
+
+=item IO
+
+=item Math::Complex
+
+=item Math::Trig
+
+=item DB_File
+
+=item Net::Ping
+
+=item Object-oriented overrides for builtin operators
=back
-=head2 perlpod - plain old documentation
+=item Utility Changes
=over
-=item DESCRIPTION
+=item pod2html
-=over
+Sends converted HTML to standard output
-=item Verbatim Paragraph
+=item xsubpp
-=item Command Paragraph
+C<void> XSUBs now default to returning nothing
-=item Ordinary Block of Text
+=back
-=item The Intent
+=item C Language API Changes
-=item Embedding Pods in Perl Modules
+C<gv_fetchmethod> and C<perl_call_sv>, C<perl_eval_pv>, Extended API for
+manipulating hashes
-=item Common Pod Pitfalls
+=item Documentation Changes
-=back
+L<perldelta>, L<perlfaq>, L<perllocale>, L<perltoot>, L<perlapio>,
+L<perlmodlib>, L<perldebug>, L<perlsec>
+
+=item New Diagnostics
+
+"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
+
+=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 Compiling Perl 5 on HP-UX
-=item Version caveat
+=item PA-RISC
-=item Dynamic Loading versus Static Loading
+=item PA-RISC 1.0
-=back
+=item PA-RISC 1.1
-=item TUTORIAL
+=item PA-RISC 2.0
-=over
+=item Portability Between PA-RISC Versions
-=item EXAMPLE 1
-
-=item EXAMPLE 2
+=item Building Dynamic Extensions on HP-UX
-=item What has gone on?
+=item The HP ANSI C Compiler
-=item Writing good test scripts
+=item Using Large Files with Perl
-=item EXAMPLE 3
+=item Threaded Perl
-=item What's new here?
+=item 64-bit Perl
-=item Input and Output Parameters
+=item GDBM and Threads
-=item The XSUBPP Program
+=item NFS filesystems and utime(2)
-=item The TYPEMAP file
+=back
-=item Warning about Output Arguments
+=item AUTHOR
-=item EXAMPLE 4
+=item DATE
-=item What has happened here?
+=back
-=item Anatomy of .xs file
+=head2 perlmachten, README.machten - Perl version 5 on Power MachTen
+systems
-=item Getting the fat out of XSUBs
+=over
-=item More about XSUB arguments
+=item DESCRIPTION
-=item The Argument Stack
+=over
-=item Extending your Extension
+=item Compiling Perl 5 on MachTen
-=item Documenting your Extension
+=item Failures during C<make test>
-=item Installing your Extension
+op/lexassign.t, pragma/warnings.t
-=item EXAMPLE 5
+=item Building external modules
-=item New Things in this Example
+=back
-=item EXAMPLE 6
+=item AUTHOR
-=item New Things in this Example
+=item DATE
-=item EXAMPLE 7 (Coming Soon)
+=back
-=item EXAMPLE 8 (Coming Soon)
+=head2 perlos2 - Perl under OS/2, DOS, Win0.3*, Win0.95 and WinNT.
-=item EXAMPLE 9 (Coming Soon)
+=over
-=item Troubleshooting these Examples
+=item SYNOPSIS
=back
-=item See also
+=over
-=item Author
+=item Target
-=over
+=item Other OSes
-=item Last Changed
+=item Prerequisites
-=back
+EMX, RSX, HPFS, pdksh
+
+=item Starting Perl programs under OS/2 (and DOS and...)
+
+=item Starting OS/2 (and DOS) programs under Perl
=back
-=head2 perlguts - Introduction to the Perl API
+=over
+
+=item Frequently asked questions
=over
-=item DESCRIPTION
+=item I cannot run external programs
-=item Variables
+=item I cannot embed perl into my program, or use F<perl.dll> from my
+program.
-=over
+Is your program EMX-compiled with C<-Zmt -Zcrtdll>?, Did you use
+L<ExtUtils::Embed>?
-=item Datatypes
+=item C<``> and pipe-C<open> do not work under DOS.
-=item What is an "IV"?
+=item Cannot start C<find.exe "pattern" file>
-=item Working with SVs
+=back
-=item What's Really Stored in an SV?
+=item INSTALLATION
-=item Working with AVs
+=over
-=item Working with HVs
+=item Automatic binary installation
-=item Hash API Extensions
+C<PERL_BADLANG>, C<PERL_BADFREE>, F<Config.pm>
-=item References
+=item Manual binary installation
-=item Blessed References and Class Objects
+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
-=item Creating New Variables
+=item B<Warning>
-=item Reference Counts and Mortality
+=back
-=item Stashes and Globs
+=item Accessing documentation
-=item Double-Typed SVs
+=over
-=item Magic Variables
+=item OS/2 F<.INF> file
-=item Assigning Magic
+=item Plain text
-=item Magic Virtual Tables
+=item Manpages
-=item Finding Magic
+=item HTML
-=item Understanding the Magic of Tied Hashes and Arrays
+=item GNU C<info> files
-=item Localizing changes
+=item F<.PDF> files
-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 C<LaTeX> docs
=back
-=item Subroutines
+=item BUILD
=over
-=item XSUBs and the Argument Stack
+=item Prerequisites
-=item Calling Perl Routines from within C Programs
+=item Getting perl source
-=item Memory Allocation
+=item Application of the patches
-=item PerlIO
+=item Hand-editing
-=item Putting a C value on Perl stack
+=item Making
-=item Scratchpads
+=item Testing
-=item Scratchpads and recursion
+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 Compiled code
+=item Build FAQ
=over
-=item Code tree
+=item Some C</> became C<\> in pdksh.
-=item Examining the tree
+=item C<'errno'> - unresolved external
-=item Compile pass 1: check routines
+=item Problems with tr or sed
-=item Compile pass 1a: constant folding
+=item Some problem (forget which ;-)
-=item Compile pass 2: context propagation
+=item Library ... not found
-=item Compile pass 3: peephole optimization
+=item Segfault in make
=back
-=item How multiple interpreters and concurrency are supported
+=item Specific (mis)features of OS/2 port
=over
-=item Background and PERL_IMPLICIT_CONTEXT
-
-=item How do I use all this in extensions?
-
-=item Future Plans and PERL_IMPLICIT_SYS
-
-=back
+=item C<setpriority>, C<getpriority>
-=item AUTHORS
+=item C<system()>
-=item SEE ALSO
+=item C<extproc> on the first line
-=back
+=item Additional modules:
-=head2 perlcall - Perl calling conventions from C
+=item Prebuilt methods:
-=over
+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 DESCRIPTION
+=item Misfeatures
-An Error Handler, An Event Driven Program
+=item Modifications
-=item THE CALL_ FUNCTIONS
+C<popen>, C<tmpnam>, C<tmpfile>, C<ctermid>, C<stat>, C<flock>
-call_sv, call_pv, call_method, call_argv
+=back
-=item FLAG VALUES
+=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
@@ -4290,22 +6596,6 @@ integer, float, binary, q, qr
=back
-=head2 pwent - Perl pragma to control the pwent functions
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=over
-
-=item subpragma shadow_password
-
-=back
-
-=back
-
=head2 re - Perl pragma to alter regular expression behaviour
=over
@@ -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
@@ -7607,6 +9917,239 @@ locale
=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 HISTORY
+
+=back
+
+=head2 IO::Handle - supply object methods for I/O handles
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CONSTRUCTOR
+
+new (), new_from_fd ( FD, MODE )
+
+=item METHODS
+
+$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 NOTE
+
+=item SEE ALSO
+
+=item BUGS
+
+=item HISTORY
+
+=back
+
+=head2 IO::Pipe - supply object methods for pipes
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CONSTRUCTOR
+
+new ( [READER, WRITER] )
+
+=item METHODS
+
+reader ([ARGS]), writer ([ARGS]), handles ()
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
+=head2 IO::Poll - Object interface to system poll call
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item METHODS
+
+mask ( IO [, EVENT_MASK ] ), poll ( [ TIMEOUT ] ), events ( IO ), remove (
+IO ), handles( [ EVENT_MASK ] )
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
+=head2 IO::Seekable - supply seek based methods for I/O objects
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item SEE ALSO
+
+=item HISTORY
+
+=back
+
+=head2 IO::Select - OO interface to the select system call
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CONSTRUCTOR
+
+new ( [ HANDLES ] )
+
+=item METHODS
+
+add ( HANDLES ), remove ( HANDLES ), exists ( HANDLE ), handles, can_read (
+[ TIMEOUT ] ), can_write ( [ TIMEOUT ] ), has_exception ( [ TIMEOUT ] ),
+count (), bits(), select ( READ, WRITE, ERROR [, TIMEOUT ] )
+
+=item EXAMPLE
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
+=head2 IO::Socket - Object interface to socket communications
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CONSTRUCTOR
+
+new ( [ARGS] )
+
+=item METHODS
+
+accept([PKG]), socketpair(DOMAIN, TYPE, PROTOCOL), timeout([VAL]),
+sockopt(OPT [, VAL]), sockdomain, socktype, protocol, connected
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
+=head2 IO::Socket::INET - Object interface for AF_INET domain sockets
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CONSTRUCTOR
+
+new ( [ARGS] )
+
+=over
+
+=item METHODS
+
+sockaddr (), sockport (), sockhost (), peeraddr (), peerport (), peerhost
+()
+
+=back
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
+=head2 IO::Socket::UNIX - Object interface for AF_UNIX domain sockets
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CONSTRUCTOR
+
+new ( [ARGS] )
+
+=item METHODS
+
+hostpath(), peerpath()
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=item COPYRIGHT
+
+=back
+
=head2 IO::lib::IO::Dir, IO::Dir - supply object methods for directory
handles
@@ -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 efea0c1a94..1649cf4d2c 100644
--- 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) {
diff --git a/pp_ctl.c b/pp_ctl.c
index 94007601ed..a924d2ebe3 100644
--- 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 e7a21c360f..bd222fe835 100644
--- 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 0e125543ef..b77a9d30cc 100644
--- 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
diff --git a/t/op/method.t b/t/op/method.t
index d2f1300690..6e25310734 100755
--- a/t/op/method.t
+++ b/t/op/method.t
@@ -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';
diff --git a/thread.h b/thread.h
index 0ea9e74544..82343607c1 100644
--- a/thread.h
+++ b/thread.h
@@ -280,7 +280,8 @@
# 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 f601cf1e4a..fc9d6818f5 100644
--- 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 e0f1f14a90..d892e75120 100644
--- 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;
}
/*
diff --git a/win32/Makefile b/win32/Makefile
index d669516974..f5ee4c6482 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -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)
diff --git a/win32/win32.c b/win32/win32.c
index 6e336169bc..60777fa36f 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -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;