This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
update TOC for perl5138delta and perl5139delta
[perl5.git] / pod / perl.pod
index c5bbd32..c1ba21c 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-perl - Practical Extraction and Report Language
+perl - The Perl 5 language interpreter
 
 =head1 SYNOPSIS
 
@@ -13,11 +13,18 @@ B<perl>     S<[ B<-sTtuUWX> ]>
        S<[ B<-S> ]>
        S<[ B<-x>[I<dir>] ]>
        S<[ B<-i>[I<extension>] ]>
-       S<[ B<-e> I<'command'> ] [ B<--> ] [ I<programfile> ] [ I<argument> ]...>
+       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.
 
@@ -41,6 +48,8 @@ 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
@@ -69,6 +78,7 @@ For ease of access, the Perl manual has been split up into several sections.
       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
@@ -89,13 +99,13 @@ 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
     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
 
@@ -125,6 +135,7 @@ For ease of access, the Perl manual has been split up into several sections.
     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
 
@@ -134,6 +145,8 @@ 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
 
@@ -145,6 +158,25 @@ For ease of access, the Perl manual has been split up into several sections.
 
     perlhist           Perl history records
     perldelta          Perl changes since previous version
+    perl5138delta      Perl changes in version 5.13.8
+    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
@@ -152,6 +184,7 @@ For ease of access, the Perl manual has been split up into several sections.
     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
@@ -193,14 +226,13 @@ For ease of access, the Perl manual has been split up into several sections.
     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
     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
@@ -220,45 +252,27 @@ For ease of access, the Perl manual has been split up into several sections.
     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:
-
-    perl -V:man.dir
+On a Unix-like system, these documentation files will usually also be
+available as manpages for use with the F<man> program.
 
-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 is a language optimized for scanning arbitrary
+Perl officially stands for Practical Extraction and Report Language,
+except when it doesn't.
+
+Perl was originally 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
-system management tasks.  The language is intended to be practical
-(easy to use, efficient, complete) rather than beautiful (tiny,
-elegant, minimal).
+reports based on that information.  It quickly became a good language
+for many system management tasks. Over the years, Perl has grown into
+a general-purpose progammming language. It's widely used for everything
+from quick "one-liners" to full-scale application development.
+
+The language is intended to be practical (easy to use, efficient,
+complete) rather than beautiful (tiny, elegant, minimal).
 
 Perl combines (in the author's opinion, anyway) some of the best
 features of C, B<sed>, B<awk>, and B<sh>, so people familiar with
@@ -272,16 +286,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...
 
@@ -395,9 +401,6 @@ 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.org/       the Perl homepage
  http://www.perl.com/       Perl articles (O'Reilly)
  http://www.cpan.org/       the Comprehensive Perl Archive
@@ -445,7 +448,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