=head1 NAME
-perlfaq2 - Obtaining and Learning about Perl ($Revision: 10144 $)
+perlfaq2 - Obtaining and Learning about Perl
=head1 DESCRIPTION
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.cpan.org/src/latest.tar.gz , which
-is in a standard Internet format (a gzipped archive in POSIX tar format).
+can find the latest releases at http://www.cpan.org/src/README.html .
Perl builds and runs on a bewildering number of platforms. Virtually
all known and current Unix derivatives are supported (perl's native
platform), as are other systems like VMS, DOS, OS/2, Windows,
QNX, BeOS, OS X, MPE/iX and the Amiga.
-Binary distributions for some proprietary platforms, including
-Apple systems, can be found http://www.cpan.org/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).
+Binary distributions for some proprietary platforms can be found
+http://www.cpan.org/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).
=head2 How can I get a binary version of perl?
-For Windows, ActiveState provides a pre-built Perl for free:
+(contributed by brian d foy)
+
+ActiveState: Windows, Linux, Mac OS X, Solaris, AIX and HP-UX
http://www.activestate.com/
-Sunfreeware.com provides binaries for many utilities, including
-Perl, for Solaris on both Intel and SPARC hardware:
+Sunfreeware.com: Solaris 2.5 to Solaris 10 (SPARC and x86)
http://www.sunfreeware.com/
-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:
+Strawberry Perl: Windows, Perl 5.8.8 and 5.10.0
- http://www.cpan.org/ports/
- http://www.perl.com/pub/language/info/software.html
+ http://www.strawberryperl.com
+
+IndigoPerl: Windows
-Someone looking for a perl for Win16 might look to Laszlo Molnar's
-djgpp port in http://www.cpan.org/ports/#msdos , which comes with
-clear installation instructions.
+ http://indigostar.com/
=head2 I don't have a C compiler. How can I build my own Perl interpreter?
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
+What you need to do is get a binary version of C<gcc> for your system
first. Consult the Usenet FAQs for your operating system for
information on where to get such a binary version.
-You might look around the net for a pre-built binary of Perl (or a
+You might look around the net for a pre-built binary of Perl (or a
C compiler!) that meets your needs, though:
For Windows, Vanilla Perl ( http://vanillaperl.com/ ) and Strawberry Perl
-( http://strawberryperl.com/ ) come with a
+( http://strawberryperl.com/ ) come with a
bundled C compiler. ActivePerl is a pre-compiled version of Perl
ready-to-use.
-For Sun systems, SunFreeware.com provides binaries of most popular
+For Sun systems, SunFreeware.com provides binaries of most popular
applications, including compilers and Perl.
=head2 I copied the perl binary from one machine to another, but scripts don't work.
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 that perl looks through for libraries:
+the hard-coded C<@INC> that perl looks through for libraries:
% perl -le 'print for @INC'
If this command lists any paths that 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
+symbolic links, aliases, or shortcuts appropriately. C<@INC> is also printed as
part of the output of
% perl -V
Read the F<INSTALL> file, which is part of the source distribution.
It describes in detail how to cope with most idiosyncrasies that the
-Configure script can't work around for any given system or
+C<Configure> script can't work around for any given system or
architecture.
=head2 What modules and extensions are available for Perl? What is CPAN? What does CPAN/src/... mean?
to the most frequently asked questions about CPAN including how to
become a mirror.
-CPAN/path/... is a naming convention for files available on CPAN
+C<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 is downloadable as
+as your CPAN site, the file C<CPAN/misc/japh> is downloadable as
ftp://ftp.funet.fi/pub/languages/perl/CPAN/misc/japh .
Considering that, as of 2006, there are over ten thousand existing
modules in the archive, one probably exists to do nearly anything you
-can think of. Current categories under CPAN/modules/by-category/
+can think of. Current categories under C<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
If you have Perl installed locally, you probably have the documentation
installed as well: type C<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
+C<$MANPATH>. If you're not on a Unix system, access to the documentation
will be different; for example, documentation might only be in HTML format. All
proper perl installations have fully-accessible documentation.
You might also try C<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.
+have a proper C<man> command, or it's been misinstalled. If that doesn't
+work, try looking in C</usr/local/lib/perl5/pod> for documentation.
If all else fails, consult http://perldoc.perl.org/ which has the
complete documentation in HTML and PDF format.
Several groups devoted to the Perl language are on Usenet:
- comp.lang.perl.announce Moderated announcement group
- comp.lang.perl.misc High traffic general Perl discussion
- 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.
+ comp.lang.perl.announce Moderated announcement group
+ comp.lang.perl.misc High traffic general Perl discussion
+ 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
Some years ago, comp.lang.perl was divided into those groups, and
comp.lang.perl itself officially removed. While that group may still
Perl 5 Pocket Reference
by Johan Vromans
- ISBN 0-596-00032-4 [3rd edition May 2000]
- http://www.oreilly.com/catalog/perlpr3/
+ ISBN 0-596-00374-9 [4th edition July 2002]
+ http://www.oreilly.com/catalog/perlpr4/
=item Tutorials
Learning Perl
by Randal L. Schwartz, Tom Phoenix, and brian d foy
- ISBN 0-596-10105-8 [4th edition July 2005]
- http://www.oreilly.com/catalog/learnperl4/
+ ISBN 0-596-52010-7 [5th edition June 2008]
+ http://oreilly.com/catalog/9780596520106/
Intermediate Perl (the "Alpaca Book")
by Randal L. Schwartz and brian d foy, with Tom Phoenix (foreword by Damian Conway)
Writing Perl Modules for CPAN
by Sam Tregar
- ISBN 1-59059-018-X [1st edition Aug 2002]
+ ISBN 1-59059-018-X [1st edition August 2002]
http://apress.com/book/bookDisplay.html?bID=14
The Perl Cookbook
http://www.awlonline.com/
Object Oriented Perl
- Damian Conway
+ by Damian Conway
with foreword by Randal L. Schwartz
ISBN 1-884777-79-1 [1st edition August 1999]
http://www.manning.com/conway/
Data Munging with Perl
- Dave Cross
+ by Dave Cross
ISBN 1-930110-00-6 [1st edition 2001]
http://www.manning.com/cross
another language). There's also I<$foo Magazin>, a german magazine
dedicated to Perl, at ( http://www.foo-magazin.de ).
+The I<Perl-Zeitung> is a German-speaking magazine for Perl beginners
+(see http://perl-zeitung.at.tf ).
+
Magazines that frequently carry quality articles on Perl include I<The
Perl Review> ( http://www.theperlreview.com ), I<Unix Review> (
http://www.unixreview.com/ ), I<Linux Magazine> (
http://www.linuxmagazine.com/ ), and Usenix's newsletter/magazine to
-its members, I<login:> ( http://www.usenix.org/ )
+its members, I<login:> ( http://www.usenix.org/ ).
The Perl columns of Randal L. Schwartz are available on the web at
http://www.stonehenge.com/merlyn/WebTechniques/ ,
studies, announcements, contests, and much more. I<TPJ> has columns
on web development, databases, Win32 Perl, graphical programming,
regular expressions, and networking, and sponsors the Obfuscated Perl
-Contest and the Perl Poetry Contests. Beginning in November 2002, TPJ
+Contest and the Perl Poetry Contests. Beginning in November 2002, I<TPJ>
moved to a reader-supported monthly e-zine format in which subscribers
-can download issues as PDF documents. In 2006, TPJ merged with Dr.
-Dobbs Journal (online edition). To read old TPJ articles, see
+can download issues as PDF documents. In 2006, I<TPJ> merged with Dr.
+Dobbs Journal (online edition). To read old I<TPJ> articles, see
http://www.ddj.com/ .
=head2 What mailing lists are there for Perl?
-Most of the major modules (Tk, CGI, libwww-perl) have their own
+Most of the major modules (C<Tk>, C<CGI>, C<libwww-perl>) have their own
mailing lists. Consult the documentation that came with the module for
subscription information.
The Google search engine now carries archived and searchable newsgroup
content.
-http://groups.google.com/groups?group=comp.lang.perl.misc
+http://groups.google.com/group/comp.lang.perl.misc/topics
If you have a question, you can be sure someone has already asked the
same question at some point on c.l.p.m. It requires some time and patience
=head2 Where do I send bug reports?
-If you are reporting a bug in the perl interpreter or the modules
-shipped with Perl, use the I<perlbug> program in the Perl distribution or
-mail your report to perlbug@perl.org or at http://rt.perl.org/perlbug/ .
+(contributed by brian d foy)
+
+First, ensure that you've found an actual bug. Second, ensure you've
+found an actual bug.
+
+If you've found a bug with the perl interpreter or one of the modules
+in the standard library (those that come with Perl), you can use the
+C<perlbug> utility that comes with Perl (>= 5.004). It collects
+information about your installation to include with your message, then
+sends the message to the right place.
+
+To determine if a module came with your version of Perl, you can
+use the C<Module::CoreList> module. It has the information about
+the modules (with their versions) included with each release of Perl.
-For Perl modules, you can submit bug reports to the Request Tracker set
-up at http://rt.cpan.org .
+If C<Module::CoreList> is not installed on your system, check out
+http://perlpunks.de/corelist .
-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.
+Every CPAN module has a bug tracker set up in RT, http://rt.cpan.org .
+You can submit bugs to RT either through its web interface or by
+email. To email a bug report, send it to
+bug-E<lt>distribution-nameE<gt>@rt.cpan.org . For example, if you
+wanted to report a bug in C<Business::ISBN>, you could send a message to
+bug-Business-ISBN@rt.cpan.org .
-Read the perlbug(1) man page (perl5.004 or later) for more information.
+Some modules might have special reporting requirements, such as a
+Sourceforge or Google Code tracking system, so you should check the
+module documentation too.
=head2 What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org?
=head1 REVISION
-Revision: $Revision: 10144 $
+Revision: $Revision$
-Date: $Date: 2007-10-31 13:50:01 +0100 (Wed, 31 Oct 2007) $
+Date: $Date$
See L<perlfaq> for source control details and availability.
=head1 AUTHOR AND COPYRIGHT
-Copyright (c) 1997-2007 Tom Christiansen, Nathan Torkington, and
+Copyright (c) 1997-2009 Tom Christiansen, Nathan Torkington, and
other authors as noted. All rights reserved.
This documentation is free; you can redistribute it and/or modify it