<A HREF="../../lib/Pod/perlhist.html">perlhist</A> Perl history records</PRE>
<PRE>
<A HREF="../../lib/Pod/perlamiga.html">perlamiga</A> Perl notes for Amiga
<A HREF="../../lib/Pod/perlcygwin.html">perlcygwin</A> Perl notes for Cygwin
<A HREF="../../lib/Pod/perldos.html">perldos</A> Perl notes for DOS
<A HREF="../../lib/Pod/perlhpux.html">perlhpux</A> Perl notes for HP-UX
perlmachten Perl notes for Power MachTen
<A HREF="../../lib/Pod/perlos2.html">perlos2</A> Perl notes for OS/2
<A HREF="../../lib/Pod/perlos390.html">perlos390</A> Perl notes for OS/390
<A HREF="../../lib/Pod/perlvms.html">perlvms</A> Perl notes for VMS
<A HREF="../../lib/Pod/perlwin32.html">perlwin32</A> Perl notes for Windows</PRE>
<P>(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.)</P>
<P>By default, the manpages listed above are installed in the
<EM>/usr/local/man/</EM> directory.</P>
<P>Extensive additional documentation for Perl modules is available. The
default configuration for perl will place this additional documentation
in the <EM>/usr/local/lib/perl5/man</EM> directory (or else in the <EM>man</EM>
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.</P>
<P>You should be able to view Perl's documentation with your <CODE>man(1)</CODE>
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:</P>
<PRE>
perl -V:man.dir</PRE>
<P>If the directories have a common stem, such as <EM>/usr/local/man/man1</EM>
and <EM>/usr/local/man/man3</EM>, you need only to add that stem
(<EM>/usr/local/man</EM>) to your <CODE>man(1)</CODE> configuration files or your MANPATH
environment variable. If they do not share a stem, you'll have to add
both stems.</P>
<P>If that doesn't work for some reason, you can still use the
supplied <EM>perldoc</EM> script to view module information. You might
also look into getting a replacement man program.</P>
<P>If something strange has gone wrong with your program and you're not
sure where you should look for help, try the <STRONG>-w</STRONG> switch first. It
will often point out exactly where the trouble is.</P>
<P>
<HR>
<H1><A NAME="description">DESCRIPTION</A></H1>
<P>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
system management tasks. The language is intended to be practical
(easy to use, efficient, complete) rather than beautiful (tiny,
elegant, minimal).</P>
<P>Perl combines (in the author's opinion, anyway) some of the best
features of C, <STRONG>sed</STRONG>, <STRONG>awk</STRONG>, and <STRONG>sh</STRONG>, so people familiar with
those languages should have little difficulty with it. (Language
historians will also note some vestiges of <STRONG>csh</STRONG>, Pascal, and even
BASIC-PLUS.) Expression syntax corresponds closely to C
expression syntax. Unlike most Unix utilities, Perl does not
arbitrarily limit the size of your data--if you've got the memory,
Perl can slurp in your whole file as a single string. Recursion is of
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.</P>
<P>If you have a problem that would ordinarily use <STRONG>sed</STRONG> or <STRONG>awk</STRONG> or
<STRONG>sh</STRONG>, 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 <STRONG>sed</STRONG> and <STRONG>awk</STRONG>
scripts into Perl scripts.</P>
<P>But wait, there's more...</P>
<P>Begun in 1993 (see <A HREF="../../lib/Pod/perlhist.html">the perlhist manpage</A>), Perl version 5 is nearly a complete
rewrite that provides the following additional benefits:</P>
<UL>
<LI><STRONG><A NAME="item_modularity_and_reusability_using_innumerable_modul">modularity and reusability using innumerable modules</A></STRONG><BR>
Described in <A HREF="../../lib/Pod/perlmod.html">the perlmod manpage</A>, <A HREF="../../lib/Pod/perlmodlib.html">the perlmodlib manpage</A>, and <A HREF="../../lib/Pod/perlmodinstall.html">the perlmodinstall manpage</A>.
<P></P>
<LI><STRONG><A NAME="item_embeddable_and_extensible">embeddable and extensible</A></STRONG><BR>
Described in <A HREF="../../lib/Pod/perlembed.html">the perlembed manpage</A>, <A HREF="../../lib/Pod/perlxstut.html">the perlxstut manpage</A>, <A HREF="../../lib/Pod/perlxs.html">the perlxs manpage</A>, <A HREF="../../lib/Pod/perlcall.html">the perlcall manpage</A>,
<A HREF="../../lib/Pod/perlguts.html">the perlguts manpage</A>, and <EM>xsubpp</EM>.
Described in <A HREF="../../lib/Pod/perltie.html">the perltie manpage</A> and <A HREF="../../lib/AnyDBM_File.html">the AnyDBM_File manpage</A>.
<P></P>
<LI><STRONG><A NAME="item_subroutines_can_now_be_overridden%2C_autoloaded%2C">subroutines can now be overridden, autoloaded, and prototyped</A></STRONG><BR>
Described in <A HREF="../../lib/Pod/perlsub.html">the perlsub manpage</A>.
<P></P>
<LI><STRONG><A NAME="item_arbitrarily_nested_data_structures_and_anonymous_f">arbitrarily nested data structures and anonymous functions</A></STRONG><BR>
Described in <A HREF="../../lib/Pod/perlreftut.html">the perlreftut manpage</A>, <A HREF="../../lib/Pod/perlref.html">the perlref manpage</A>, <A HREF="../../lib/Pod/perldsc.html">the perldsc manpage</A>, and <A HREF="../../lib/Pod/perllol.html">the perllol manpage</A>.
Described in <A HREF="../../lib/Pod/perlobj.html">the perlobj manpage</A>, <A HREF="../../lib/Pod/perltoot.html">the perltoot manpage</A>, and <A HREF="../../lib/Pod/perlbot.html">the perlbot manpage</A>.
<P></P>
<LI><STRONG><A NAME="item_compilability_into_C_code_or_Perl_bytecode">compilability into C code or Perl bytecode</A></STRONG><BR>
Described in <A HREF="../../lib/B.html">the B manpage</A> and <A HREF="../../lib/B/Bytecode.html">the B::Bytecode manpage</A>.
<P></P>
<LI><STRONG><A NAME="item_processes">support for light-weight processes (threads)</A></STRONG><BR>
Described in <A HREF="../../lib/Pod/perlthrtut.html">the perlthrtut manpage</A> and <A HREF="../../lib/Thread.html">the Thread manpage</A>.
<P></P>
<LI><STRONG><A NAME="item_support_for_internationalization%2C_localization%2">support for internationalization, localization, and Unicode</A></STRONG><BR>
Described in <A HREF="../../lib/Pod/perllocale.html">the perllocale manpage</A> and <A HREF="../../lib/utf8.html">the utf8 manpage</A>.
Described in <A HREF="../../lib/Pod/perlre.html">the perlre manpage</A>, with additional examples in <A HREF="../../lib/Pod/perlop.html">the perlop manpage</A>.
<P></P>
<LI><STRONG><A NAME="item_enhanced_debugger_and_interactive_Perl_environment">enhanced debugger and interactive Perl environment, with integrated editor support</A></STRONG><BR>
Described in <A HREF="../../lib/Pod/perldebug.html">the perldebug manpage</A>.