This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Change 27330 failed to decontaminate SvCUR/GvFLAGS when upgrading an
[perl5.git] / pod / perl.pod
index cb627cd..2f3b109 100644 (file)
@@ -4,92 +4,211 @@ perl - Practical Extraction and Report Language
 
 =head1 SYNOPSIS
 
-B<perl>        S<[ B<-sTuU> ]> S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]>
-    S<[ B<-cw> ] [ B<-d>[:I<debugger>] ] [ B<-D>[I<number/list>] ]>
-    S<[ B<-pna> ] [ B<-F>I<pattern> ] [ B<-l>[I<octal>] ] [ B<-0>[I<octal>] ]>
-    S<[ B<-I>I<dir> ] [ B<-m>[B<->]I<module> ] [ B<-M>[B<->]I<'module...'> ]>
-    S<[ B<-P> ]> S<[ B<-S> ]> S<[ B<-x>[I<dir>] ]>
-    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:
+B<perl>        S<[ B<-sTtuUWX> ]>
+       S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]>
+       S<[ B<-cw> ] [ B<-d>[B<t>][:I<debugger>] ] [ B<-D>[I<number/list>] ]>
+       S<[ B<-pna> ] [ B<-F>I<pattern> ] [ B<-l>[I<octal>] ] [ B<-0>[I<octal/hexadecimal>] ]>
+       S<[ B<-I>I<dir> ] [ B<-m>[B<->]I<module> ] [ B<-M>[B<->]I<'module...'> ] [ B<-f> ]>
+       S<[ B<-A>[I<module>][=I<assertions>] ]>
+       S<[ B<-C [I<number/list>] >]>
+       S<[ B<-P> ]>
+       S<[ B<-S> ]>
+       S<[ B<-x>[I<dir>] ]>
+       S<[ B<-i>[I<extension>] ]>
+       S<[ B<-e> I<'command'> ] [ B<--> ] [ I<programfile> ] [ I<argument> ]...>
+
+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
+
+    perlcheat          Perl cheat sheet
+    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 pack() and unpack() 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
+    perlreref          Perl regular expressions quick reference
+    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
-    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
+
+    perlglossary       Perl Glossary
+
+=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
+
+    perldoc            Look up Perl documentation in Pod format
+
     perlhist           Perl history records
+    perldelta          Perl changes since previous version
+    perl593delta       Perl changes in version 5.9.3
+    perl592delta       Perl changes in version 5.9.2
+    perl591delta       Perl changes in version 5.9.1
+    perl590delta       Perl changes in version 5.9.0
+    perl588delta       Perl changes in version 5.8.8
+    perl587delta       Perl changes in version 5.8.7
+    perl586delta       Perl changes in version 5.8.6
+    perl585delta       Perl changes in version 5.8.5
+    perl584delta       Perl changes in version 5.8.4
+    perl583delta       Perl changes in version 5.8.3
+    perl582delta       Perl changes in version 5.8.2
+    perl581delta       Perl changes in version 5.8.1
+    perl58delta        Perl changes in version 5.8.0
+    perl573delta       Perl changes in version 5.7.3
+    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
+
+    perlartistic       Perl Artistic License
+    perlgpl            GNU General Public License
+
+=head2 Language-Specific
+
+    perlcn             Perl for Simplified Chinese (in EUC-CN)
+    perljp             Perl for Japanese (in EUC-JP)
+    perlko             Perl for Korean (in EUC-KR)
+    perltw             Perl for Traditional Chinese (in Big5)
 
-    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
+    perlfreebsd        Perl notes for FreeBSD
     perlhpux           Perl notes for HP-UX
+    perlhurd           Perl notes for Hurd
+    perlirix           Perl notes for Irix
+    perllinux          Perl notes for Linux
+    perlmachten        Perl notes for Power MachTen
+    perlmacos          Perl notes for Mac OS (Classic)
+    perlmacosx         Perl notes for Mac OS X
+    perlmint           Perl notes for MiNT
+    perlmpeix          Perl notes for MPE/iX
+    perlnetware        Perl notes for NetWare
+    perlopenbsd        Perl notes for OpenBSD
     perlos2            Perl notes for OS/2
     perlos390          Perl notes for OS/390
+    perlos400          Perl notes for OS/400
+    perlplan9          Perl notes for Plan 9
+    perlqnx            Perl notes for QNX
+    perlsolaris        Perl notes for Solaris
+    perlsymbian        Perl notes for Symbian
+    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.  
@@ -159,58 +278,81 @@ 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>.
 
-Described in L<B> and L<B::Bytecode>.
+=item *
 
-=item * support for light-weight processes (threads)
+support for light-weight processes (threads)
 
-Described in L<perlthrtut> and L<Thread>.
+Described in L<perlthrtut> and L<threads>.
 
-=item * support for internationalization, localization, and Unicode 
+=item *
 
-Described in L<perllocale> and L<utf8>.
+support for Unicode, internationalization, and localization
 
-=item * lexical scoping
+Described in L<perluniintro>, L<perllocale> and L<Locale::Maketext>.
+
+=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>.
 
@@ -221,73 +363,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 May 1999, 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             Linux           SCO ODT/OSR
-        A/UX            MachTen         Solaris
-        BeOS            MPE/iX          SunOS
-        BSD/OS          NetBSD          SVR4
-        DG/UX           NextSTEP        Tru64 UNIX      3)
-        DomainOS        OpenBSD         Ultrix                  
-        DOS DJGPP 1)    OpenSTEP        UNICOS                  
-        DYNIX/ptx       OS/2            VMS                     
-        FreeBSD         OS390     2)    VOS 
-        HP-UX           PowerMAX        Windows 3.1     1)      
-        Hurd            QNX             Windows 95      1) 4)   
-        IRIX                            Windows 98      1) 4)   
-                                        Windows NT      1) 4)
-
-        1) in DOS mode either the DOS or OS/2 ports can be used
-        2) formerly known as MVS
-        3) formerly known as Digital UNIX and before that DEC OSF/1     
-        4) compilers: Borland, Cygwin, Mingw32 EGCS/GCC, VC++
-                                        
-The following platforms have been known to build Perl from source,
-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             FPS             Plan 9
-        AmigaOS         GENIX           PowerUX
-        ConvexOS        Greenhills      RISC/os         
-        CX/UX           ISC             Stellar         
-        DC/OSx          MachTen 68k     SVR2            
-        DDE SMES        MiNT            TI1500          
-        DOS EMX         MPC             TitanOS         
-        Dynix           NEWS-OS         UNICOS/mk       
-        EP/IX           Opus            Unisys Dynix    
-        ESIX                           Unixware        
-
-Support for the following platforms is planned for the next major
-Perl release.
-
-        BS2000
-       Netware
-       Rhapsody
-        VM/ESA
-
-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
-       MacOS                   5.004
-       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
+all Unix-like platforms.  See L<perlport/"Supported Platforms">
+for a listing.
 
 =head1 ENVIRONMENT
 
@@ -311,12 +388,15 @@ 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.org/       the Perl homepage
+ http://www.perl.com/       Perl articles (O'Reilly)
+ http://www.cpan.org/       the Comprehensive Perl Archive
+ http://www.pm.org/         the Perl Mongers
 
 =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
@@ -354,8 +434,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