This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade Math::BigInt to version 1.98
[perl5.git] / pod / perl.pod
index 5274afc..76c1326 100644 (file)
 =head1 NAME
 
-perl - Practical Extraction and Report Language
+perl - The Perl language interpreter
 
 =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> ]...>
+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<-C [I<number/list>] >]>
+       S<[ B<-S> ]>
+       S<[ B<-x>[I<dir>] ]>
+       S<[ B<-i>[I<extension>] ]>
+       S<[ [B<-e>|B<-E>] I<'command'> ] [ B<--> ] [ I<programfile> ] [ I<argument> ]...>
 
-For ease of access, the Perl manual has been split up into several sections:
+=head1 GETTING HELP
+
+The F<perldoc> program gives you access to all the documentation that comes
+with Perl.  You can get more documentation, tutorials and community support
+online at L<http://www.perl.org/>.
+
+If you're new to Perl, you should start by running C<perldoc perlintro>,
+which is a general intro for beginners and provides some background to help
+you navigate the rest of Perl's extensive documentation.  Run C<perldoc
+perldoc> to learn more things you can do with F<perldoc>.
+
+For ease of access, the Perl manual has been split up into several sections.
+
+=head2 Overview
 
     perl               Perl overview (this section)
-    perlfaq            Perl frequently asked questions
+    perlintro          Perl introduction for beginners
     perltoc            Perl documentation table of contents
-    perlbook           Perl book information
 
-    perlsyn            Perl syntax
-    perldata           Perl data structures
-    perlop             Perl operators and precedence
-    perlsub            Perl subroutines
-    perlfunc           Perl builtin functions
+=head2 Tutorials
+
     perlreftut         Perl references short introduction
     perldsc            Perl data structures intro
-    perlrequick                Perl regular expressions quick start
-    perlpod            Perl plain old documentation
+    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
+    perltooc           Perl OO tutorial, part 2
+    perlbot            Perl OO tricks and examples
+
+    perlperf           Perl Performance and Optimization Techniques
+
     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
+    perlpodstyle       Perl POD style guide
     perlrun            Perl execution and options
     perldiag           Perl diagnostic messages
-    perllexwarn                Perl warnings and their control
-    perldebtut         Perl debugging tutorial
+    perllexwarn        Perl warnings and their control
     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
+    perlrebackslash    Perl regular expression backslash sequences
+    perlrecharclass    Perl regular expression character classes
+    perlreref          Perl regular expressions quick reference
     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
-    perlbot            Perl OO tricks and examples
     perltie            Perl objects hidden behind simple variables
+      perldbmfilter    Perl DBM filters
 
     perlipc            Perl interprocess communication
     perlfork           Perl fork() information
     perlnumber         Perl number semantics
+
     perlthrtut         Perl threads tutorial
 
     perlport           Perl portability guide
     perllocale         Perl locale support
-    perlunicode                Perl unicode support
+    perluniintro       Perl Unicode introduction
+    perlunicode        Perl Unicode support
+    perlunifaq         Perl Unicode FAQ
+    perluniprops       Index of Unicode Version 5.2.0 properties in Perl
+    perlunitut         Perl Unicode tutorial
     perlebcdic         Considerations for running Perl on EBCDIC platforms
 
     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
+    perlpragma         Perl modules: writing a user pragma
+
+    perlutil           utilities packaged with the Perl distribution
+
+    perlcompile        Perl compiler suite intro
 
-    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
+    perlfilter         Perl source filters
+
+    perlglossary       Perl Glossary
 
-    perlcompile                Perl compiler suite intro
+=head2 Internals and C Language Interface
 
     perlembed          Perl ways to embed perl in your C or C++ application
-    perldebguts                Perl debugging guts and tips
+    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
+    perlmroapi         Perl method resolution plugin interface
+    perlreapi          Perl regular expression plugin interface
+    perlreguts         Perl regular expression engine internals
+
     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
+    perlpolicy         Perl development policies
+    perlrepository     Perl source repository
+
+=head2 Miscellaneous
+
+    perlbook           Perl book information
+    perlcommunity      Perl community information
+    perltodo           Perl things to do
+
+    perldoc            Look up Perl documentation in Pod format
 
     perlhist           Perl history records
     perldelta          Perl changes since previous version
+    perl5136delta      Perl changes in version 5.13.6
+    perl5135delta      Perl changes in version 5.13.5
+    perl5134delta      Perl changes in version 5.13.4
+    perl5133delta      Perl changes in version 5.13.3
+    perl5132delta      Perl changes in version 5.13.2
+    perl5131delta      Perl changes in version 5.13.1
+    perl5130delta      Perl changes in version 5.13.0
+    perl5122delta      Perl changes in version 5.12.2
+    perl5121delta      Perl changes in version 5.12.1
+    perl5120delta      Perl changes in version 5.12.0
+    perl5115delta      Perl changes in version 5.11.5
+    perl5114delta      Perl changes in version 5.11.4
+    perl5113delta      Perl changes in version 5.11.3
+    perl5112delta      Perl changes in version 5.11.2
+    perl5111delta      Perl changes in version 5.11.1
+    perl5110delta      Perl changes in version 5.11.0
+    perl5101delta      Perl changes in version 5.10.1
+    perl5100delta      Perl changes in version 5.10.0
+    perl595delta       Perl changes in version 5.9.5
+    perl594delta       Perl changes in version 5.9.4
+    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
+    perl589delta       Perl changes in version 5.8.9
+    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
-    perl56delta                Perl changes in version 5.6
+    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)
+
+=head2 Platform-Specific
+
     perlaix            Perl notes for AIX
     perlamiga          Perl notes for AmigaOS
     perlapollo         Perl notes for Apollo DomainOS
@@ -119,61 +223,45 @@ For ease of access, the Perl manual has been split up into several sections:
     perldgux           Perl notes for DG/UX
     perldos            Perl notes for DOS
     perlepoc           Perl notes for EPOC
+    perlfreebsd        Perl notes for FreeBSD
+    perlhaiku          Perl notes for Haiku
     perlhpux           Perl notes for HP-UX
     perlhurd           Perl notes for Hurd
-    perlmachten                Perl notes for Power MachTen
+    perlirix           Perl notes for Irix
+    perllinux          Perl notes for Linux
     perlmacos          Perl notes for Mac OS (Classic)
-    perlmint           Perl notes for MiNT
+    perlmacosx         Perl notes for Mac OS X
     perlmpeix          Perl notes for MPE/iX
-    perlnetware                Perl notes for NetWare
+    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
+    perlriscos         Perl notes for RISC OS
     perlsolaris        Perl notes for Solaris
+    perlsymbian        Perl notes for Symbian
     perltru64          Perl notes for Tru64
-    perluts             Perl notes for UTS
+    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.  
-
-Extensive additional documentation for Perl modules is available.  The
-default configuration for perl will place this additional documentation
-in the F</usr/local/lib/perl5/man> directory (or else in the F<man>
-subdirectory of the Perl library directory).  Some of this additional
-documentation is distributed standard with Perl, but you'll also find
-documentation for third-party modules there.
 
-You should be able to view Perl's documentation with your man(1)
-program by including the proper directories in the appropriate start-up
-files, or in the MANPATH environment variable.  To find out where the
-configuration has installed the manpages, type:
+On a Unix-like system, these documentation files will usually also be
+available as manpages for use with the F<man> program.
 
-    perl -V:man.dir
-
-If the directories have a common stem, such as F</usr/local/man/man1>
-and F</usr/local/man/man3>, you need only to add that stem
-(F</usr/local/man>) to your man(1) configuration files or your MANPATH
-environment variable.  If they do not share a stem, you'll have to add
-both stems.
-
-If that doesn't work for some reason, you can still use the
-supplied F<perldoc> script to view module information.  You might
-also look into getting a replacement man program.
-
-If something strange has gone wrong with your program and you're not
-sure where you should look for help, try the B<-w> switch first.  It
-will often point out exactly where the trouble is.
+In general, if something strange has gone wrong with your program and you're
+not sure where you should look for help, try the B<-w> switch first.  It will
+often point out exactly where the trouble is.
 
 =head1 DESCRIPTION
 
+Perl officially stands for Practical Extraction and Report Language,
+except when it doesn't.
+
 Perl is a language optimized for scanning arbitrary
 text files, extracting information from those text files, and printing
 reports based on that information.  It's also a good language for many
@@ -226,7 +314,8 @@ L<perlguts>, and L<xsubpp>.
 
 =item *
 
-roll-your-own magic variables (including multiple simultaneous DBM implementations)
+roll-your-own magic variables (including multiple simultaneous DBM
+implementations)
 
 Described in L<perltie> and L<AnyDBM_File>.
 
@@ -246,25 +335,20 @@ Described in L<perlreftut>, L<perlref>, L<perldsc>, and L<perllol>.
 
 object-oriented programming
 
-Described in L<perlobj>, L<perltoot>, and L<perlbot>.
-
-=item *
-
-compilability into C code or Perl bytecode
-
-Described in L<B> and L<B::Bytecode>.
+Described in L<perlobj>, L<perlboot>, L<perltoot>, L<perltooc>,
+and L<perlbot>.
 
 =item *
 
 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 
+support for Unicode, internationalization, and localization
 
-Described in L<perllocale> and L<utf8>.
+Described in L<perluniintro>, L<perllocale> and L<Locale::Maketext>.
 
 =item *
 
@@ -283,7 +367,7 @@ Described in L<perlre>, with additional examples in L<perlop>.
 enhanced debugger and interactive Perl environment,
 with integrated editor support
 
-Described in L<perldebug>.
+Described in L<perldebtut>, L<perldebug> and L<perldebguts>.
 
 =item *
 
@@ -323,8 +407,10 @@ 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
 
@@ -368,7 +454,7 @@ 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.org .  If you've succeeded
-in compiling perl, the B<perlbug> script in the F<utils/> subdirectory
+in compiling perl, the L<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