perlfaq2 - Obtaining and Learning about Perl ($Revision:
       1.32 $, $Date: 1999/10/14 18:46:09 $)


DESCRIPTION

       This section of the FAQ answers questions about where to
       find source and documentation for Perl, support, and
       related matters.

       What machines support Perl?  Where do I get it?

       The standard release of Perl (the one maintained by the
       perl development team) is distributed only in source code
       form.  You can find this at
       http://www.perl.com/CPAN/src/latest.tar.gz , which in
       standard Internet format (a gzipped archive in POSIX tar
       format).

       Perl builds and runs on a bewildering number of platforms.
       Virtually all known and current Unix derivatives are sup­
       ported (Perl's native platform), as are other systems like
       VMS, DOS, OS/2, Windows, QNX, BeOS, and the Amiga.  There
       are also the beginnings of support for MPE/iX.

       Binary distributions for some proprietary platforms,
       including Apple systems, can be found
       http://www.perl.com/CPAN/ports/ directory.  Because these
       are not part of the standard distribution, they may and in
       fact do differ from the base Perl port in a variety of
       ways.  You'll have to check their respective release notes
       to see just what the differences are.  These differences
       can be either positive (e.g. extensions for the features
       of the particular platform that are not supported in the
       source release of perl) or negative (e.g.  might be based
       upon a less current source release of perl).

       How can I get a binary version of Perl?

       If you don't have a C compiler because your vendor for
       whatever reasons did not include one with your system, the
       best thing to do is grab a binary version of gcc from the
       net and use that to compile perl with.  CPAN only has
       binaries for systems that are terribly hard to get free
       compilers for, not for Unix systems.

       Some URLs that might help you are:

           http://language.perl.com/info/software.html
           http://www.perl.com/pub/language/info/software.html#binary
           http://www.perl.com/CPAN/ports/

       Someone looking for a Perl for Win16 might look to Laszlo
       Molnar's djgpp port in
       http://www.perl.com/CPAN/ports/msdos/ , which comes with

       guide for MS-DOS using Ilya Zakharevich's OS/2 port is
       available at http://www.cs.ruu.nl/%7Epiet/perl5dos.html
       and similarly for Windows 3.1 at
       http://www.cs.ruu.nl/%7Epiet/perlwin3.html .

       I don't have a C compiler on my system.  How can I compile
       perl?

       Since you don't have a C compiler, you're doomed and your
       vendor should be sacrificed to the Sun gods.  But that
       doesn't help you.

       What you need to do is get a binary version of gcc for
       your system first.  Consult the Usenet FAQs for your oper­
       ating system for information on where to get such a binary
       version.

       I copied the Perl binary from one machine to another, but
       scripts don't work.

       That's probably because you forgot libraries, or library
       paths differ.  You really should build the whole distribu­
       tion on the machine it will eventually live on, and then
       type `make install'.  Most other approaches are doomed to
       failure.

       One simple way to check that things are in the right place
       is to print out the hard-coded @INC which perl is looking
       for.

           % perl -e 'print join("\n",@INC)'

       If this command lists any paths which don't exist on your
       system, then you may need to move the appropriate
       libraries to these locations, or create symbolic links,
       aliases, or shortcuts appropriately.  @INC is also printed
       as part of the output of

           % perl -V

       You might also want to check out the How do I keep my own
       module/library directory? entry in the perlfaq8 manpage.

       I grabbed the sources and tried to compile but
       gdbm/dynamic loading/malloc/linking/... failed.  How do I
       make it work?

       Read the INSTALL file, which is part of the source distri­
       bution.  It describes in detail how to cope with most
       idiosyncrasies that the Configure script can't work around
       for any given system or architecture.

       is CPAN?  What does CPAN/src/... mean?

       CPAN stands for Comprehensive Perl Archive Network, a huge
       archive replicated on dozens of machines all over the
       world.  CPAN contains source code, non-native ports, docu­
       mentation, scripts, and many third-party modules and
       extensions, designed for everything from commercial
       database interfaces to keyboard/screen control to web
       walking and CGI scripts.  The master machine for CPAN is
       ftp://ftp.funet.fi/pub/languages/perl/CPAN/, but you can
       use the address http://www.perl.com/CPAN/CPAN.html to
       fetch a copy from a "site near you".  See
       http://www.perl.com/CPAN (without a slash at the end) for
       how this process works.

       CPAN/path/... is a naming convention for files available
       on CPAN sites.  CPAN indicates the base directory of a
       CPAN mirror, and the rest of the path is the path from
       that directory to the file.  For instance, if you're using
       ftp://ftp.funet.fi/pub/languages/perl/CPAN as your CPAN
       site, the file CPAN/misc/japh file is downloadable as
       ftp://ftp.funet.fi/pub/languages/perl/CPAN/misc/japh .

       Considering that there are hundreds of existing modules in
       the archive, one probably exists to do nearly anything you
       can think of.  Current categories under CPAN/modules/by-
       category/ include Perl core modules; development support;
       operating system interfaces; networking, devices, and
       interprocess communication; data type utilities; database
       interfaces; user interfaces; interfaces to other lan­
       guages; filenames, file systems, and file locking; inter­
       nationalization and locale; world wide web support; server
       and daemon utilities; archiving and compression; image
       manipulation; mail and news; control flow utilities; file­
       handle and I/O; Microsoft Windows modules; and miscella­
       neous modules.

       Is there an ISO or ANSI certified version of Perl?

       Certainly not.  Larry expects that he'll be certified
       before Perl is.

       Where can I get information on Perl?

       The complete Perl documentation is available with the Perl
       distribution.  If you have Perl installed locally, you
       probably have the documentation installed as well: type
       `man perl' if you're on a system resembling Unix.  This
       will lead you to other important man pages, including how
       to set your $MANPATH.  If you're not on a Unix system,
       access to the documentation will be different; for exam­
       ple, it might be only in HTML format.  But all proper Perl
       installations have fully-accessible documentation.

       doesn't have a proper man command, or it's been misin­
       stalled.  If that doesn't work, try looking in
       /usr/local/lib/perl5/pod for documentation.

       If all else fails, consult the CPAN/doc directory, which
       contains the complete documentation in various formats,
       including native pod, troff, html, and plain text.
       There's also a web page at
       http://www.perl.com/perl/info/documentation.html that
       might help.

       Many good books have been written about Perl -- see the
       section below for more details.

       Tutorial documents are included in current or upcoming
       Perl releases include the perltoot manpage for objects,
       the perlopentut manpage for file opening semantics, the
       perlreftut manpage for managing references, and the per­
       lxstut manpage for linking C and Perl together.  There may
       be more by the time you read this.  The following URLs
       might also be of assistance:

           http://language.perl.com/info/documentation.html
           http://reference.perl.com/query.cgi?tutorials

       What are the Perl newsgroups on Usenet?  Where do I post
       questions?

       The now defunct comp.lang.perl newsgroup has been super­
       seded by the following groups:

           comp.lang.perl.announce             Moderated announcement group
           comp.lang.perl.misc                 Very busy group about Perl in general
           comp.lang.perl.moderated            Moderated discussion group
           comp.lang.perl.modules              Use and development of Perl modules
           comp.lang.perl.tk                   Using Tk (and X) from Perl

           comp.infosystems.www.authoring.cgi  Writing CGI scripts for the Web.

       There is also Usenet gateway to the mailing list used by
       the crack Perl development team (perl5-porters) at
       news://news.perl.com/perl.porters-gw/ .

       Where should I post source code?

       You should post source code to whichever group is most
       appropriate, but feel free to cross-post to
       comp.lang.perl.misc.  If you want to cross-post to
       alt.sources, please make sure it follows their posting
       standards, including setting the Followup-To header line
       to NOT include alt.sources; see their FAQ
       (http://www.faqs.org/faqs/alt-sources-intro/) for details.

       (http://www.altavista.com), Deja (http://www.deja.com),
       and search CPAN.  This is faster and more productive than
       just posting a request.

       Perl Books

       A number of books on Perl and/or CGI programming are
       available.  A few of these are good, some are OK, but many
       aren't worth your money.  Tom Christiansen maintains a
       list of these books, some with extensive reviews, at
       http://www.perl.com/perl/critiques/index.html.

       The incontestably definitive reference book on Perl, writ­
       ten by the creator of Perl, is now in its second edition:

           Programming Perl (the "Camel Book"):
               by Larry Wall, Tom Christiansen, and Randal Schwartz
               ISBN 1-56592-149-6      (English)
               ISBN 4-89052-384-7      (Japanese)
               URL: http://www.oreilly.com/catalog/pperl2/
           (French, German, Italian, and Hungarian translations also
           available)

       The companion volume to the Camel containing thousands of
       real-world examples, mini-tutorials, and complete programs
       (first premiering at the 1998 Perl Conference), is:

           The Perl Cookbook (the "Ram Book"):
               by Tom Christiansen and Nathan Torkington,
                           with Foreword by Larry Wall
               ISBN: 1-56592-243-3
               URL:  http://perl.oreilly.com/cookbook/

       If you're already a hard-core systems programmer, then the
       Camel Book might suffice for you to learn Perl from.  But
       if you're not, check out:

           Learning Perl (the "Llama Book"):
               by Randal Schwartz and Tom Christiansen
                           with Foreword by Larry Wall
               ISBN: 1-56592-284-0
               URL:  http://www.oreilly.com/catalog/lperl2/

       Despite the picture at the URL above, the second edition
       of "Llama Book" really has a blue cover, and is updated
       for the 5.004 release of Perl.  Various foreign language
       editions are available, including Learning Perl on Win32
       Systems (the Gecko Book).

       If you're not an accidental programmer, but a more serious
       and possibly even degreed computer scientist who doesn't
       need as much hand-holding as we try to provide in the
       Llama or its defurred cousin the Gecko, please check out

       written by Nigel Chapman.

       You can order O'Reilly books directly from O'Reilly &
       Associates, 1-800-998-9938.  Local/overseas is
       1-707-829-0515.  If you can locate an O'Reilly order form,
       you can also fax to 1-707-829-0104.  See
       http://www.ora.com/ on the Web.

       What follows is a list of the books that the FAQ authors
       found personally useful.  Your mileage may (but, we hope,
       probably won't) vary.

       Recommended books on (or mostly on) Perl follow; those
       marked with a star may be ordered from O'Reilly.

       References
               *Programming Perl
                   by Larry Wall, Tom Christiansen, and Randal L. Schwartz

               *Perl 5 Desktop Reference
                   by Johan Vromans

               *Perl in a Nutshell
                   by Ellen Siever, Stephan Spainhour, and Nathan Patwardhan

       Tutorials
               *Learning Perl [2nd edition]
                   by Randal L. Schwartz and Tom Christiansen
                       with foreword by Larry Wall

               *Learning Perl on Win32 Systems
                   by Randal L. Schwartz, Erik Olson, and Tom Christiansen,
                       with foreword by Larry Wall

               Perl: The Programmer's Companion
                   by Nigel Chapman

               Cross-Platform Perl
                   by Eric F. Johnson

               MacPerl: Power and Ease
                   by Vicki Brown and Chris Nandor, foreword by Matthias Neeracher

       Task-Oriented
               *The Perl Cookbook
                   by Tom Christiansen and Nathan Torkington
                       with foreword by Larry Wall

               Perl5 Interactive Course [2nd edition]
                   by Jon Orwant

                   by Sriram Srinivasan

               Effective Perl Programming
                   by Joseph Hall

       Special Topics
               *Mastering Regular Expressions
                   by Jeffrey Friedl

               How to Set up and Maintain a World Wide Web Site [2nd edition]
                   by Lincoln Stein

               *Learning Perl/Tk
                   by Nancy Walsh

       Perl in Magazines

       The first and only periodical devoted to All Things Perl,
       The Perl Journal contains tutorials, demonstrations, case
       studies, announcements, contests, and much more.  TPJ has
       columns on web development, databases, Win32 Perl, graphi­
       cal programming, regular expressions, and networking, and
       sponsors the Obfuscated Perl Contest.  It is published
       quarterly under the gentle hand of its editor, Jon Orwant.
       See http://www.tpj.com/ or send mail to subscrip­
       tions@tpj.com .

       Beyond this, magazines that frequently carry high-quality
       articles on Perl are Web Techniques (see
       http://www.webtechniques.com/), Performance Computing
       (http://www.performance-computing.com/), and Usenix's
       newsletter/magazine to its members, login:, at
       http://www.usenix.org/.  Randal's Web Technique's columns
       are available on the web at http://www.stonehenge.com/mer­
       lyn/WebTechniques/.

       Perl on the Net: FTP and WWW Access

       To get the best (and possibly cheapest) performance, pick
       a site from the list below and use it to grab the complete
       list of mirror sites.  From there you can find the quick­
       est site for you.  Remember, the following list is not the
       complete list of CPAN mirrors.

         http://www.perl.com/CPAN-local
         http://www.perl.com/CPAN      (redirects to an ftp mirror)
         ftp://cpan.valueclick.com/pub/CPAN/
         ftp://ftp.funet.fi/pub/languages/perl/CPAN/
         http://www.cs.ruu.nl/pub/PERL/CPAN/
         ftp://ftp.cs.colorado.edu/pub/perl/CPAN/


       Most of the major modules (Tk, CGI, libwww-perl) have
       their own mailing lists.  Consult the documentation that
       came with the module for subscription information.  The
       Perl Mongers attempt to maintain a list of mailing lists
       at:

               http://www.perl.org/support/online_support.html#mail

       Archives of comp.lang.perl.misc

       Have you tried Deja or AltaVista?  Those are the best
       archives.  Just look up "*perl*" as a newsgroup.

           http://www.deja.com/dnquery.xp?QRY=&DBS=2&ST=PS&defaultOp=AND&LNG=ALL&format=terse&showsort=date&maxhits=25&subjects=&groups=*perl*&authors=&fromdate=&todate=

       You'll probably want to trim that down a bit, though.

       You'll probably want more a sophisticated query and
       retrieval mechanism than a file listing, preferably one
       that allows you to retrieve articles using a fast-access
       indices, keyed on at least author, date, subject, thread
       (as in "trn") and probably keywords.  The best solution
       the FAQ authors know of is the MH pick command, but it is
       very slow to select on 18000 articles.

       If you have, or know where can be found, the missing sec­
       tions, please let perlfaq-suggestions@perl.com know.

       Where can I buy a commercial version of Perl?

       In a real sense, Perl already is commercial software: It
       has a license that you can grab and carefully read to your
       manager. It is distributed in releases and comes in well-
       defined packages. There is a very large user community and
       an extensive literature.  The comp.lang.perl.*  newsgroups
       and several of the mailing lists provide free answers to
       your questions in near real-time.  Perl has traditionally
       been supported by Larry, scores of software designers and
       developers, and myriads of programmers, all working for
       free to create a useful thing to make life better for
       everyone.

       However, these answers may not suffice for managers who
       require a purchase order from a company whom they can sue
       should anything go awry.  Or maybe they need very serious
       hand-holding and contractual obligations.  Shrink-wrapped
       CDs with Perl on them are available from several sources
       if that will help.  For example, many Perl books carry a
       Perl distribution on them, as do the O'Reilly Perl
       Resource Kits (in both the Unix flavor and in the propri­
       etary Microsoft flavor); the free Unix distributions also


       Or you can purchase commercial incidence based support
       through the Perl Clinic.  The following is a commercial
       from them:

       "The Perl Clinic is a commercial Perl support service
       operated by ActiveState Tool Corp. and The Ingram Group.
       The operators have many years of in-depth experience with
       Perl applications and Perl internals on a wide range of
       platforms.

       "Through our group of highly experienced and well-trained
       support engineers, we will put our best effort into under­
       standing your problem, providing an explanation of the
       situation, and a recommendation on how to proceed."

       Contact The Perl Clinic at:

           www.PerlClinic.com

           North America Pacific Standard Time (GMT-8)
           Tel:    1 604 606-4611 hours 8am-6pm
           Fax:    1 604 606-4640

           Europe (GMT)
           Tel:    00 44 1483 862814
           Fax:    00 44 1483 862801

       See also www.perl.com for updates on tutorials, training,
       and support.

       Where do I send bug reports?

       If you are reporting a bug in the perl interpreter or the
       modules shipped with Perl, use the perlbug program in the
       Perl distribution or mail your report to perlbug@perl.com
       .

       If you are posting a bug with a non-standard port (see the
       answer to "What platforms is Perl available for?"), a
       binary distribution, or a non-standard module (such as Tk,
       CGI, etc), then please see the documentation that came
       with it to determine the correct place to post bugs.

       Read the perlbug(1) man page (perl5.004 or later) for more
       information.

       What is perl.com? Perl Mongers? pm.org? perl.org?

       The perl.com domain is owned by Tom Christiansen, who cre­
       ated it as a public service long before perl.org came
       about.  Despite the name, it's a pretty non-commercial
       site meant to be a clearinghouse for information about all

       happy GIFs, or silly Java applets on its pages.  The Perl
       Home Page at http://www.perl.com/ is currently hosted on a
       T3 line courtesy of Songline Systems, a software-oriented
       subsidiary of O'Reilly and Associates.  Other starting
       points include

           http://language.perl.com/
           http://conference.perl.com/
           http://reference.perl.com/

       Perl Mongers is an advocacy organization for the Perl lan­
       guage.  For details, see the Perl Mongers web site at
       http://www.perlmongers.org/.

       Perl Mongers uses the pm.org domain for services related
       to Perl user groups.  See the Perl user group web site at
       http://www.pm.org/ for more information about joining,
       starting, or requesting services for a Perl user group.

       Perl Mongers also maintains the perl.org domain to provide
       general support services to the Perl community, including
       the hosting of mailing lists, web sites, and other ser­
       vices.  The web site http://www.perl.org/ is a general
       advocacy site for the Perl language, and there are many
       other sub-domains for special topics, such as

           http://history.perl.org/
           http://bugs.perl.org/
           http://www.news.perl.org/


AUTHOR AND COPYRIGHT

       Copyright (c) 1997-1999 Tom Christiansen and Nathan Tork­
       ington.  All rights reserved.

       When included as an integrated part of the Standard Dis­
       tribution of Perl or of its documentation (printed or oth­
       erwise), this works is covered under Perl's Artistic
       License.  For separate distributions of all or part of
       this FAQ outside of that, see the perlfaq manpage.

       Irrespective of its distribution, all code examples here
       are in the public domain.  You are permitted and encour­
       aged to use this code and any derivatives thereof in your
       own programs for fun or for profit as you see fit.  A sim­
       ple comment in the code giving credit to the FAQ would be
       courteous but is not required.


Man(1) output converted with man2html