PERLFAQ2(1)
NNAAMMEE
perlfaq2 - Obtaining and Learning about Perl ($Revision:
1.16 $, $Date: 1997/04/23 18:04:09 $)
DDEESSCCRRIIPPTTIIOONN
This section of the FAQ answers questions about where to
find source and documentation for Perl, support and
training, and related matters.
WWhhaatt mmaacchhiinneess ssuuppppoorrtt PPeerrll?? WWhheerree ddoo II ggeett iitt??
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 is a
gzipped archive in POSIX tar format. This source builds
with no porting whatsoever on most Unix systems (Perl's
native environment), as well as Plan 9, VMS, QNX, OS/2,
and the Amiga.
Although it's rumored that the (imminent) 5.004 release
may build on Windows NT, this is yet to be proven. Binary
distributions for 32-bit Microsoft systems and for 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).
A useful FAQ for Win32 Perl users is
http://www.endcontsw.com/people/evangelo/Perl_for_Win32_FAQ.html
HHooww ccaann II ggeett aa bbiinnaarryy vveerrssiioonn ooff PPeerrll??
If you don't have a C compiler because for whatever
reasons your vendor 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.
Your first stop should be http://www.perl.com/CPAN/ports
to see what information is already available. A simple
installation guide for MS-DOS is available at
http://www.cs.ruu.nl/~piet/perl5dos.html , and similarly
for Windows 3.1 at
http://www.cs.ruu.nl/~piet/perlwin3.html .
II ddoonn''tt hhaavvee aa CC ccoommppiilleerr oonn mmyy ssyysstteemm.. HHooww ccaann II ccoommppiillee
ppeerrll??
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
operating system for information on where to get such a
binary version.
II ccooppiieedd tthhee PPeerrll bbiinnaarryy ffrroomm oonnee mmaacchhiinnee ttoo aannootthheerr,, bbuutt
ssccrriippttss ddoonn''tt wwoorrkk..
That's probably because you forgot libraries, or library
paths differ. You really should build the whole
distribution 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 symlinks, aliases,
or shortcuts appropriately.
You might also want to check out the section on How do I
keep my own module/library directory? in the perlfaq8
manpage.
II ggrraabbbbeedd tthhee ssoouurrcceess aanndd ttrriieedd ttoo ccoommppiillee bbuutt
ggddbbmm//ddyynnaammiicc llooaaddiinngg//mmaalllloocc//lliinnkkiinngg//...... ffaaiilleedd.. HHooww ddoo II
mmaakkee iitt wwoorrkk??
Read the INSTALL file, which is part of the source
distribution. It describes in detail how to cope with
most idiosyncracies that the Configure script can't work
around for any given system or architecture.
WWhhaatt mmoodduulleess aanndd eexxtteennssiioonnss aarree aavvaaiillaabbllee ffoorr PPeerrll?? WWhhaatt
iiss CCPPAANN?? WWhhaatt ddooeess CCPPAANN//ssrrcc//...... mmeeaann??
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,
documentation, 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
languages; filenames, file systems, and file locking;
internationalization and locale; world wide web support;
server and daemon utilities; archiving and compression;
image manipulation; mail and news; control flow utilities;
filehandle and I/O; Microsoft Windows modules; and
miscellaneous modules.
IIss tthheerree aann IISSOO oorr AANNSSII cceerrttiiffiieedd vveerrssiioonn ooff PPeerrll??
Certainly not. Larry expects that he'll be certified
before Perl is.
WWhheerree ccaann II ggeett iinnffoorrmmaattiioonn oonn PPeerrll??
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. If you're not on a
Unix system, access to the documentation will be
different; for example, it might be only in HTML format.
But all proper perl installations have fully-accessible
documentation.
You might also try perldoc perl in case your system
doesn't have a proper man command, or it's been
misinstalled. 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.
It's also worth noting that there's a PDF version of the
complete documentation for perl available in the
CPAN/authors/id/BMIDD directory.
Many good books have been written about Perl -- see the
section below for more details.
WWhhaatt aarree tthhee PPeerrll nneewwssggrroouuppss oonn UUSSEENNEETT?? WWhheerree ddoo II ppoosstt
qquueessttiioonnss??
The now defunct comp.lang.perl newsgroup has been
superseded 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.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://genetics.upenn.edu/perl.porters-gw/ .
WWhheerree sshhoouulldd II ppoosstt ssoouurrccee ccooddee??
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 for details.
PPeerrll BBooookkss
A number 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,
written by the creator of Perl and his apostles, is now in
its second edition and fourth printing.
Programming Perl (the "Camel Book"):
Authors: Larry Wall, Tom Christiansen, and Randal Schwartz
ISBN 1-56592-149-6 (English)
ISBN 4-89052-384-7 (Japanese)
(French and German translations in progress)
Note that O'Reilly books are color-coded: turquoise (some
would call it teal) covers indicate perl5 coverage, while
magenta (some would call it pink) covers indicate perl4
only. Check the cover color before you buy!
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.
If you're already a hard-core systems programmer, then the
Camel Book just might suffice for you to learn Perl from.
But if you're not, check out the "Llama Book". It
currently doesn't cover perl5, but the 2nd edition is
nearly done and should be out by summer 97:
Learning Perl (the Llama Book):
Author: Randal Schwartz, with intro by Larry Wall
ISBN 1-56592-042-2 (English)
ISBN 4-89502-678-1 (Japanese)
ISBN 2-84177-005-2 (French)
ISBN 3-930673-08-8 (German)
Another stand-out book in the turquoise O'Reilly Perl line
is the "Hip Owls" book. It covers regular expressions
inside and out, with quite a bit devoted exclusively to
Perl:
Mastering Regular Expressions (the Cute Owls Book):
Author: Jeffrey Friedl
ISBN 1-56592-257-3
You can order any of these books 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.
Recommended Perl books that are not from O'Reilly are the
following:
Cross-Platform Perl, (for Unix and Windows NT)
Author: Eric F. Johnson
ISBN: 1-55851-483-X
How to Set up and Maintain a World Wide Web Site, (2nd edition)
Author: Lincoln Stein, M.D., Ph.D.
ISBN: 0-201-63462-7
CGI Programming in C & Perl,
Author: Thomas Boutell
ISBN: 0-201-42219-0
Note that some of these address specific application areas
(e.g. the Web) and are not general-purpose programming
books.
PPeerrll iinn MMaaggaazziinneess
The Perl Journal is the first and only magazine dedicated
to Perl. It is published (on paper, not online) quarterly
by Jon Orwant orwant@tpj.com, editor. Subscription
information is at http://tpj.com or via email to
subscriptions@tpj.com.
Beyond this, two other magazines that frequently carry
high-quality articles on Perl are Web Techniques (see
http://www.webtechniques.com/) and Unix Review
(http://www.unixreview.com/). Randal Schwartz's Web
Technique's columns are available on the web at
http://www.stonehenge.com/merlyn/WebTechniques/ .
PPeerrll oonn tthhee NNeett:: FFTTPP aanndd WWWWWW AAcccceessss
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
quickest site for you. Remember, the following list is
not the complete list of CPAN mirrors.
http://www.perl.com/CPAN (redirects to another mirror)
http://www.perl.org/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/
http:/www.oasis.leo.org/perl/ has, amongst other things,
source to versions 1 through 5 of Perl.
WWhhaatt mmaaiilliinngg lliissttss aarree tthheerree ffoorr ppeerrll??
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
following are a list of mailing lists related to perl
itself.
If you subscribe to a mailing list, it behooves you to
know how to unsubscribe from it. Strident pleas to the
list itself to get you off will not be favorably received.
MacPerl
There is a mailing list for discussing Macintosh Perl.
Contact "mac-perl-request@iis.ee.ethz.ch".
Also see Matthias Neeracher's (the creator and
maintainer of MacPerl) webpage at
http://www.iis.ee.ethz.ch/~neeri/macintosh/perl.html
for many links to interesting MacPerl sites, and the
applications/MPW tools, precompiled.
Perl5-Porters
The core development team have a mailing list for
discussing fixes and changes to the language. Send
mail to "perl5-porters-request@perl.org" with help in
the body of the message for information on
subscribing.
NTPerl
This list is used to discuss issues involving Win32
Perl 5 (Windows NT and Win95). Subscribe by emailing
ListManager@ActiveWare.com with the message body:
subscribe Perl-Win32-Users
The list software, also written in perl, will
automatically determine your address, and subscribe
you automatically. To unsubscribe, email the
following in the message body to the same address like
so:
unsubscribe Perl-Win32-Users
You can also check http://www.activeware.com/ and
select "Mailing Lists" to join or leave this list.
Perl-Packrats
Discussion related to archiving of perl materials,
particularly the Comprehensive PerlArchive Network
(CPAN). Subscribe by emailing majordomo@cis.ufl.edu:
subscribe perl-packrats
The list software, also written in perl, will
automatically determine your address, and subscribe
you automatically. To unsubscribe, simple prepend the
same command with an "un", and mail to the same
address like so:
unsubscribe perl-packrats
AArrcchhiivveess ooff ccoommpp..llaanngg..ppeerrll..mmiisscc
Have you tried Deja News or Alta Vista?
ftp.cis.ufl.edu:/pub/perl/comp.lang.perl.*/monthly has an
almost complete collection dating back to 12/89 (missing
08/91 through 12/93). They are kept as one large file for
each month.
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
sections, please let perlfaq-suggestions@perl.com know.
PPeerrll TTrraaiinniinngg
While some large training companies offer their own
courses on Perl, you may prefer to contact individuals
near and dear to the heart of Perl development. Two well-
known members of the Perl development team who offer such
things are Tom Christiansen lt;perl-classes@perl.com and
Randal Schwartz lt;perl-training-info@stonehenge.com, plus
their respective minions, who offer a variety of
professional tutorials and seminars on Perl. These
courses include large public seminars, private corporate
training, and fly-ins to Colorado and Oregon. See
http://www.perl.com/perl/info/training.html for more
details.
WWhheerree ccaann II bbuuyy aa ccoommmmeerrcciiaall vveerrssiioonn ooff PPeerrll??
In a sense, Perl already is commercial software: It has a
licence 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, dozens of software designers and
developers, and thousands 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 wrong. 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.
Or you can purchase a real support contract. Although
Cygnus historically provided this service, they no longer
sell support contracts for Perl. Instead, the Paul Ingram
Group will be taking up the slack through The Perl Clinic.
The following is a commercial from them:
"Do you need professional support for Perl and/or Oraperl?
Do you need a support contract with defined levels of
service? Do you want to pay only for what you need?
"The Paul Ingram Group has provided quality software
development and support services to some of the world's
largest corporations for ten years. We are now offering
the same quality support services for Perl at The Perl
Clinic. This service is led by Tim Bunce, an active perl
porter since 1994 and well known as the author and
maintainer of the DBI, DBD::Oracle, and Oraperl modules
and author/co-maintainer of The Perl 5 Module List. We
also offer Oracle users support for Perl5 Oraperl and
related modules (which Oracle is planning to ship as part
of Oracle Web Server 3). 20% of the profit from our Perl
support work will be donated to The Perl Institute."
For more information, contact the The Perl Clinic:
Tel: +44 1483 424424
Fax: +44 1483 419419
Web: http://www.perl.co.uk/
Email: perl-support-info@perl.co.uk or Tim.Bunce@ig.co.uk
WWhheerree ddoo II sseenndd bbuugg rreeppoorrttss??
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 email 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 man page (perl5.004 or later) for more
information.
WWhhaatt iiss ppeerrll..ccoomm?? ppeerrll..oorrgg?? TThhee PPeerrll IInnssttiittuuttee??
perl.org is the official vehicle for The Perl Institute.
The motto of TPI is "helping people help Perl help people"
(or something like that). It's a non-profit organization
supporting development, documentation, and dissemination
of perl. Current directors of TPI include Larry Wall, Tom
Christiansen, and Randal Schwartz, whom you may have heard
of somewhere else around here.
The perl.com domain is Tom Christiansen's domain. He
created it as a public service long before perl.org came
about. It's the original PBS of the Perl world, a
clearinghouse for information about all things Perlian,
accepting no paid advertisements, glossy gifs, or (gasp!)
java applets on its pages.
HHooww ddoo II lleeaarrnn aabboouutt oobbjjeecctt--oorriieenntteedd PPeerrll pprrooggrraammmmiinngg??
the perltoot manpage (distributed with 5.004 or later) is
a good place to start. Also, the perlobj manpage, the
perlref manpage, and the perlmod manpage are useful
references, while the perlbot manpage has some excellent
tips and tricks.
AAUUTTHHOORR AANNDD CCOOPPYYRRIIGGHHTT
Copyright (c) 1997 Tom Christiansen and Nathan Torkington.
All rights reserved. See the perlfaq manpage for
distribution information.