This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Don't explicitly talk about our support for DBM files as a feature.
[perl5.git] / pod / perl.pod
index 081e1df..72dca8b 100644 (file)
@@ -1,20 +1,30 @@
 =head1 NAME
 
-perl - Practical Extraction and Report Language
+perl - The Perl 5 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> ]...>
 
-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.
+=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.
 
@@ -30,7 +40,7 @@ For ease of access, the Perl manual has been split up into several sections.
     perldsc            Perl data structures intro
     perllol            Perl data structures: arrays of arrays
 
-    perlrequick                Perl regular expressions quick start
+    perlrequick        Perl regular expressions quick start
     perlretut          Perl regular expressions tutorial
 
     perlboot           Perl OO tutorial for beginners
@@ -38,8 +48,11 @@ For ease of access, the Perl manual has been split up into several sections.
     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
 
@@ -62,14 +75,19 @@ For ease of access, the Perl manual has been split up into several sections.
     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
+    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
+    perllexwarn        Perl warnings and their control
     perldebug          Perl debugging
     perlvar            Perl predefined variables
     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
     perlobj            Perl objects
@@ -81,12 +99,14 @@ For ease of access, the Perl manual has been split up into several sections.
     perlnumber         Perl number semantics
 
     perlthrtut         Perl threads tutorial
-      perlothrtut              Old Perl threads tutorial
 
     perlport           Perl portability guide
     perllocale         Perl locale support
     perluniintro       Perl Unicode introduction
-    perlunicode                Perl Unicode support
+    perlunicode        Perl Unicode support
+    perlunifaq         Perl Unicode FAQ
+    perluniprops       Index of Unicode Version 6.0.0 properties in Perl
+    perlunitut         Perl Unicode tutorial
     perlebcdic         Considerations for running Perl on EBCDIC platforms
 
     perlsec            Perl security
@@ -96,22 +116,28 @@ For ease of access, the Perl manual has been split up into several sections.
     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
+    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
-    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
+    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)
@@ -119,21 +145,73 @@ For ease of access, the Perl manual has been split up into several sections.
     perlapio           Perl internal IO abstraction interface
 
     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
+    perl5137delta      Perl changes in version 5.13.7
+    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
@@ -146,59 +224,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
 
 
-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
@@ -218,16 +282,8 @@ unlimited depth.  And the tables used by hashes (sometimes called
 "associative arrays") grow as necessary to prevent degraded
 performance.  Perl can use sophisticated pattern matching techniques to
 scan large amounts of data quickly.  Although optimized for
-scanning text, Perl can also deal with binary data, and can make dbm
-files look like hashes.  Setuid Perl scripts are safer than C programs
-through a dataflow tracing mechanism that prevents many stupid
-security holes.
-
-If you have a problem that would ordinarily use B<sed> or B<awk> or
-B<sh>, but it exceeds their capabilities or must run a little faster,
-and you don't want to write the silly thing in C, then Perl may be for
-you.  There are also translators to turn your B<sed> and B<awk>
-scripts into Perl scripts.
+scanning text, Perl also has many excellent tools for slicing
+and dicing binary data.
 
 But wait, there's more...
 
@@ -251,7 +307,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>.
 
@@ -276,21 +333,15 @@ 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)
 
-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 *
 
@@ -346,12 +397,10 @@ Perl developers, please write to perl-thanks@perl.org .
 
 =head1 SEE ALSO
 
- a2p   awk to perl translator
- s2p   sed to perl translator
-
- http://www.perl.com/       the Perl Home Page
+ 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.perl.org/       Perl Mongers (Perl user groups)
+ http://www.pm.org/         the Perl Mongers
 
 =head1 DIAGNOSTICS
 
@@ -395,7 +444,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