This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove a now-inaccurate statement about setuid scripts
[perl5.git] / pod / perl.pod
index e17f309..b8ce9e3 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.
 
@@ -38,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
@@ -66,12 +78,15 @@ 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
     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
@@ -84,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
+    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
@@ -99,6 +116,7 @@ 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
 
@@ -106,6 +124,8 @@ For ease of access, the Perl manual has been split up into several sections.
 
     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
@@ -115,6 +135,9 @@ 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
 
     perlapi            Perl API listing (autogenerated)
     perlintern         Perl internal functions (autogenerated)
@@ -122,18 +145,49 @@ 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
@@ -171,21 +225,24 @@ 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
-    perlmachten        Perl notes for Power MachTen
+    perllinux          Perl notes for Linux
     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
+    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
     perlvmesa          Perl notes for VM/ESA
@@ -194,39 +251,18 @@ 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:
+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
@@ -247,15 +283,7 @@ unlimited depth.  And the tables used by hashes (sometimes called
 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.
+files look like hashes.
 
 But wait, there's more...
 
@@ -372,9 +400,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.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
 
@@ -418,7 +447,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