This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[ID 20011207.001] documentation bug for waitpid
[perl5.git] / pod / perl.pod
index 120dc44..2cac3f8 100644 (file)
@@ -12,85 +12,161 @@ 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:
+If you're new to Perl, you should start with L<perlintro>, which is a 
+general intro for beginners and provides some background to help you
+navigate the rest of Perl's extensive documentation.
+
+For ease of access, the Perl manual has been split up into several sections.
+
+=head2 Overview
 
     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
+    perlintro          Perl introduction for beginners
     perltoc            Perl documentation table of contents
 
-    perldata           Perl data structures
-    perlsyn            Perl syntax
-    perlop             Perl operators and precedence
-    perlre             Perl regular expressions
-    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
-    perlmodlib         Perl modules: how to write and use
-    perlmodinstall     Perl modules: how to install from CPAN
-    perlform           Perl formats
-    perlunicode                Perl unicode support
-    perllocale         Perl locale support
+=head2 Tutorials
 
     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
+
+    perlrequick                Perl regular expressions quick start
+    perlretut          Perl regular expressions tutorial
+
     perlboot           Perl OO tutorial for beginners
     perltoot           Perl OO tutorial, part 1
-    perltootc          Perl OO tutorial, part 2
+    perltooc           Perl OO tutorial, part 2
+    perlbot            Perl OO tricks and examples
+
+    perlstyle          Perl style guide
+
+    perltrap           Perl traps for the unwary
+    perldebtut         Perl debugging tutorial
+
+    perlfaq            Perl frequently asked questions
+      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
+
+=head2 Reference Manual
+
+    perlsyn            Perl syntax
+    perldata           Perl data structures
+    perlop             Perl operators and precedence
+    perlsub            Perl subroutines
+    perlfunc           Perl built-in functions
+      perlopentut      Perl open() tutorial
+      perlpacktut       Perl open() tutorial
+    perlpod            Perl plain old documentation
+    perlpodspec         Perl plain old documentation format specification
+    perlrun            Perl execution and options
+    perldiag           Perl diagnostic messages
+    perllexwarn                Perl warnings and their control
+    perldebug          Perl debugging
+    perlvar            Perl predefined variables
+    perlre             Perl regular expressions, the rest of the story
+    perlref            Perl references, the rest of the story
+    perlform           Perl formats
     perlobj            Perl objects
     perltie            Perl objects hidden behind simple variables
-    perlbot            Perl OO tricks and examples
+      perldbmfilter    Perl DBM filters
+
     perlipc            Perl interprocess communication
     perlfork           Perl fork() information
+    perlnumber         Perl number semantics
+
     perlthrtut         Perl threads tutorial
-    perllexwarn                Perl warnings and their control
-    perlfilter         Perl source filters
-    perldbmfilter      Perl DBM filters
+      perlothrtut        Old Perl threads tutorial
 
-    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
+    perllocale         Perl locale support
+    perluniintro       Perl Unicode introduction
+    perlunicode                Perl Unicode support
+    perlebcdic         Considerations for running Perl on EBCDIC platforms
 
-    perlpod            Perl plain old documentation
-    perlbook           Perl book information
+    perlsec            Perl security
+
+    perlmod            Perl modules: how they work
+    perlmodlib         Perl modules: how to write and use
+    perlmodstyle       Perl modules: how to write modules with style
+    perlmodinstall     Perl modules: how to install from CPAN
+    perlnewmod         Perl modules: preparing a new module for distribution
+
+    perlutil           utilities packaged with the Perl distribution
+
+    perlcompile                Perl compiler suite intro
+
+    perlfilter         Perl source filters
+
+=head2 Internals and C Language Interface
 
     perlembed          Perl ways to embed perl in your C or C++ application
-    perlapio           Perl internal IO abstraction interface
-    perlxs             Perl XS application programming interface
+    perldebguts                Perl debugging guts and tips
     perlxstut          Perl XS tutorial
+    perlxs             Perl XS application programming interface
+    perlclib           Internal replacements for standard C library functions
     perlguts           Perl internal functions for those doing extensions
     perlcall           Perl calling conventions from C
+
     perlapi            Perl API listing (autogenerated)
     perlintern         Perl internal functions (autogenerated)
+    perliol            C API for Perl's implementation of IO in Layers
+    perlapio           Perl internal IO abstraction interface
 
-    perltodo           Perl things to do
     perlhack           Perl hackers guide
+
+=head2 Miscellaneous
+
+    perlbook           Perl book information
+    perltodo           Perl things to do
+
     perlhist           Perl history records
+    perldelta          Perl changes since previous version
+    perl572delta       Perl changes in version 5.7.2
+    perl571delta       Perl changes in version 5.7.1
+    perl570delta       Perl changes in version 5.7.0
+    perl561delta       Perl changes in version 5.6.1
+    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
+=head2 Platform-Specific
+
+    perlaix            Perl notes for AIX
+    perlamiga          Perl notes for AmigaOS
+    perlapollo         Perl notes for Apollo DomainOS
+    perlbeos           Perl notes for BeOS
+    perlbs2000         Perl notes for POSIX-BC BS2000
+    perlce             Perl notes for WinCE
     perlcygwin         Perl notes for Cygwin
+    perldgux           Perl notes for DG/UX
     perldos            Perl notes for DOS
+    perlepoc           Perl notes for EPOC
     perlhpux           Perl notes for HP-UX
+    perlhurd           Perl notes for Hurd
+    perlmachten                Perl notes for Power MachTen
+    perlmacos          Perl notes for Mac OS (Classic)
+    perlmint           Perl notes for MiNT
+    perlmpeix          Perl notes for MPE/iX
+    perlnetware                Perl notes for NetWare
     perlos2            Perl notes for OS/2
     perlos390          Perl notes for OS/390
+    perlplan9          Perl notes for Plan 9
+    perlqnx            Perl notes for QNX
+    perlsolaris        Perl notes for Solaris
+    perltru64          Perl notes for Tru64
+    perluts             Perl notes for UTS
+    perlvmesa          Perl notes for VM/ESA
     perlvms            Perl notes for VMS
+    perlvos            Perl notes for Stratus VOS
     perlwin32          Perl notes for Windows
 
-(If you're intending to read these straight through for the first time,
-the suggested order will tend to reduce the number of forward references.)
 
 By default, the manpages listed above are installed in the 
 F</usr/local/man/> directory.  
@@ -160,58 +236,86 @@ But wait, there's more...
 Begun in 1993 (see L<perlhist>), Perl version 5 is nearly a complete
 rewrite that provides the following additional benefits:
 
-=over
+=over 4
+
+=item *
 
-=item * modularity and reusability using innumerable modules 
+modularity and reusability using innumerable modules 
 
 Described in L<perlmod>, L<perlmodlib>, and L<perlmodinstall>.
 
-=item * embeddable and extensible 
+=item *
+
+embeddable and extensible 
 
 Described in L<perlembed>, L<perlxstut>, L<perlxs>, L<perlcall>,
 L<perlguts>, and L<xsubpp>.
 
-=item * roll-your-own magic variables (including multiple simultaneous DBM implementations)
+=item *
+
+roll-your-own magic variables (including multiple simultaneous DBM implementations)
 
 Described in L<perltie> and L<AnyDBM_File>.
 
-=item * subroutines can now be overridden, autoloaded, and prototyped
+=item *
+
+subroutines can now be overridden, autoloaded, and prototyped
 
 Described in L<perlsub>.
 
-=item * arbitrarily nested data structures and anonymous functions
+=item *
+
+arbitrarily nested data structures and anonymous functions
 
 Described in L<perlreftut>, L<perlref>, L<perldsc>, and L<perllol>.
 
-=item * object-oriented programming
+=item *
 
-Described in L<perlobj>, L<perltoot>, and L<perlbot>.
+object-oriented programming
 
-=item * compilability into C code or Perl bytecode
+Described in L<perlobj>, L<perlboot>, L<perltoot>, L<perltooc>,
+and L<perlbot>.
+
+=item *
+
+compilability into C code or Perl bytecode
 
 Described in L<B> and L<B::Bytecode>.
 
-=item * support for light-weight processes (threads)
+=item *
+
+support for light-weight processes (threads)
 
 Described in L<perlthrtut> and L<Thread>.
 
-=item * support for internationalization, localization, and Unicode 
+=item *
+
+support for internationalization, localization, and Unicode 
 
 Described in L<perllocale> and L<utf8>.
 
-=item * lexical scoping
+=item *
+
+lexical scoping
 
 Described in L<perlsub>.
 
-=item * regular expression enhancements
+=item *
+
+regular expression enhancements
 
 Described in L<perlre>, with additional examples in L<perlop>.
 
-=item * enhanced debugger and interactive Perl environment, with integrated editor support
+=item *
+
+enhanced debugger and interactive Perl environment,
+with integrated editor support
+
+Described in L<perldebtut>, L<perldebug> and L<perldebguts>.
 
-Described in L<perldebug>.
+=item *
 
-=item * POSIX 1003.1 compliant library
+POSIX 1003.1 compliant library
 
 Described in L<POSIX>.
 
@@ -222,147 +326,8 @@ Okay, that's I<definitely> enough hype.
 =head1 AVAILABILITY
 
 Perl is available for most operating systems, including virtually
-all Unix-like platforms.
-
-As of early March 2000 (the Perl release 5.6.0), the following
-platforms are able to build Perl from the standard source code
-distribution available at http://www.perl.com/CPAN/src/index.html
-
-       AIX
-       DOS DJGPP       1)
-       FreeBSD
-       HP-UX
-       IRIX
-       Linux
-       MachTen
-       MPE/iX
-       NetBSD
-       OpenBSD
-       OS/2
-       Rhapsody/Darwin 2)
-       Solaris
-       Tru64 UNIX      3)
-       UNICOS
-       UNICOS/mk
-       VMS
-       VOS
-       Windows 3.1     1)
-       Windows 95      1) 4)
-       Windows 98      1) 4)
-       Windows NT      1) 4)
-
-        1) in DOS mode either the DOS or OS/2 ports can be used
-        2) new in 5.6.0: the BSD/NeXT-based UNIX of Mac OS X
-        3) formerly known as Digital UNIX and before that DEC OSF/1
-        4) compilers: Borland, Cygwin, Mingw32 EGCS/GCC, VC++
-
-The following platforms worked for the previous major release
-(5.005_03 being the latest maintenance release of that, as of early
-March 2000), but be did not manage to test these in time for the 5.6.0
-release of Perl.  There is a very good chance that these will work
-just fine with 5.6.0.
-
-       A/UX
-       BeOS
-       BSD/OS
-       DG/UX
-       DYNIX/ptx
-       DomainOS
-       Hurd
-       NextSTEP
-       OpenSTEP
-       PowerMAX
-       QNX
-       SCO ODT/OSR     
-       SunOS
-       SVR4
-       Ultrix
-
-The following platform worked for the previous major release (5.005_03
-being the latest maintenance release of that, as of early March 2000).
-However, standardization on UTF-8 as the internal string representation
-in 5.6.0 has introduced incompatibilities in this EBCDIC platform.
-Support for this platform may be enabled in a future release:
-
-       OS390   1)
-
-       1) Previously known as MVS, or OpenEdition MVS.
-
-Strongly related to the OS390 platform by also being EBCDIC-based
-mainframe platforms are the following platforms:
-
-       BS2000
-       VM/ESA
-
-These are also not expected to work under 5.6.0 for the same reasons
-as OS390.  Contact the mailing list perl-mvs@perl.org for more details.
-
-MacOS (Classic, pre-X) is almost 5.6.0-ready; building from the source
-does work with 5.6.0, but additional MacOS specific source code is needed
-for a complete port.  Contact the mailing list macperl-porters@macperl.org
-for more more information.
-
-The following platforms have been known to build Perl from source in
-the past, but we haven't been able to verify their status for the
-current release, either because the hardware/software platforms are
-rare or because we don't have an active champion on these
-platforms--or both:
-
-       3b1
-       AmigaOS
-       ConvexOS
-       CX/UX
-       DC/OSx
-       DDE SMES
-       DOS EMX
-       Dynix
-       EP/IX
-       ESIX
-       FPS
-       GENIX
-       Greenhills
-       ISC
-       MachTen 68k
-       MiNT
-       MPC
-       NEWS-OS
-       Opus
-       Plan 9
-       PowerUX
-       RISC/os
-       Stellar
-       SVR2
-       TI1500
-       TitanOS
-       Unisys Dynix
-       Unixware
-
-Support for the following platform is planned for a future Perl release:
-
-       Netware
-
-The following platforms have their own source code distributions and
-binaries available via http://www.perl.com/CPAN/ports/index.html:
-
-                               Perl release
-
-       AS/400                  5.003
-       Netware                 5.003_07
-       Tandem Guardian         5.004
-
-The following platforms have only binaries available via
-http://www.perl.com/CPAN/ports/index.html:
-
-                               Perl release
-
-       Acorn RISCOS            5.005_02
-       AOS                     5.002
-       LynxOS                  5.004_02
-
-Although we do suggest that you always build your own Perl from
-the source code, both for maximal configurability and for security,
-in case you are in a hurry you can check
-http://www.perl.com/CPAN/ports/index.html for binary distributions.
+all Unix-like platforms.  See L<perlport/"Supported Platforms">
+for a listing.
 
 =head1 ENVIRONMENT
 
@@ -386,12 +351,14 @@ Perl developers, please write to perl-thanks@perl.org .
  a2p   awk to perl translator
  s2p   sed to perl translator
 
- http://www.perl.com/      the Perl Home Page
- http://www.perl.com/CPAN   the Comprehensive Perl Archive
+ http://www.perl.com/       the Perl Home Page
+ http://www.cpan.org/       the Comprehensive Perl Archive
+ http://www.perl.org/       Perl Mongers (Perl user groups)
 
 =head1 DIAGNOSTICS
 
-The B<-w> switch produces some lovely diagnostics.
+The C<use warnings> pragma (and the B<-w> switch) produces some 
+lovely diagnostics.
 
 See L<perldiag> for explanations of all Perl's diagnostics.  The C<use
 diagnostics> pragma automatically turns Perl's normally terse warnings
@@ -429,8 +396,8 @@ affected by wraparound).
 
 You may mail your bug reports (be sure to include full configuration
 information as output by the myconfig program in the perl source
-tree, or by C<perl -V>) to perlbug@perl.com .  If you've succeeded
-in compiling perl, the perlbug script in the utils/ subdirectory
+tree, or by C<perl -V>) to perlbug@perl.org .  If you've succeeded
+in compiling perl, the B<perlbug> script in the F<utils/> subdirectory
 can be used to help mail in a bug report.
 
 Perl actually stands for Pathologically Eclectic Rubbish Lister, but