This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Document the use of Third Degree (sparsely).
[perl5.git] / pod / perl.pod
index f954e10..fd55b8d 100644 (file)
@@ -12,81 +12,115 @@ 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
-    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
-
+    perlfunc           Perl builtin functions
     perlreftut         Perl references short introduction
-    perlref            Perl references, the rest of the story
     perldsc            Perl data structures intro
+    perlrequick                Perl regular expressions quick start
+    perlpod            Perl plain old documentation
+    perlstyle          Perl style guide
+    perltrap           Perl traps for the unwary
+
+    perlrun            Perl execution and options
+    perldiag           Perl diagnostic messages
+    perllexwarn                Perl warnings and their control
+    perldebtut         Perl debugging tutorial
+    perldebug          Perl debugging
+
+    perlvar            Perl predefined variables
     perllol            Perl data structures: arrays of arrays
+    perlopentut                Perl open() tutorial
+    perlretut          Perl regular expressions tutorial
+
+    perlre             Perl regular expressions, the rest of the story
+    perlref            Perl references, the rest of the story
+
+    perlform           Perl formats
+
     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
     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
 
-    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
+    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
+    perlmodinstall     Perl modules: how to install from CPAN
+    perlnewmod         Perl modules: preparing a new module for distribution
+
+    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
+
+    perlcompile                Perl compiler suite intro
 
     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
+    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)
-
+    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
+
     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
 
+    perlaix            Perl notes for AIX
     perlamiga          Perl notes for Amiga
+    perlbs2000         Perl notes for POSIX-BC BS2000
     perlcygwin         Perl notes for Cygwin
     perldos            Perl notes for DOS
+    perlepoc           Perl notes for EPOC
     perlhpux           Perl notes for HP-UX
+    perlmachten                Perl notes for Power MachTen
+    perlmpeix          Perl notes for MPE/iX
     perlos2            Perl notes for OS/2
     perlos390          Perl notes for OS/390
+    perlsolaris        Perl notes for Solaris
+    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,
@@ -160,58 +194,85 @@ 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 *
+
+object-oriented programming
 
 Described in L<perlobj>, L<perltoot>, and L<perlbot>.
 
-=item * compilability into C code or Perl bytecode
+=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<perldebug>.
 
-=item * POSIX 1003.1 compliant library
+=item *
+
+POSIX 1003.1 compliant library
 
 Described in L<POSIX>.
 
@@ -222,148 +283,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
-       LynxOS
-       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
 
@@ -392,7 +313,8 @@ Perl developers, please write to perl-thanks@perl.org .
 
 =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
@@ -430,8 +352,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