=head1 NAME
-perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.34 $, $Date: 2005/08/10 15:56:54 $)
+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?
-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.
+(contributed by brian d foy)
-Some URLs that might help you are:
+ActiveState: Windows, Linux, Mac OS X, Solaris, AIX and HP-UX
- http://www.cpan.org/ports/
- http://www.perl.com/pub/language/info/software.html
+ http://www.activestate.com/
-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. A simple installation 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 .
+Sunfreeware.com: Solaris 2.5 to Solaris 10 (SPARC and x86)
+
+ http://www.sunfreeware.com/
+
+Strawberry Perl: Windows, Perl 5.8.8 and 5.10.0
+
+ http://www.strawberryperl.com
+
+IndigoPerl: Windows
+
+ http://indigostar.com/
=head2 I don't have a C compiler. How can I build my own Perl interpreter?
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
+C compiler!) that meets your needs, though:
+
+For Windows, Vanilla Perl ( http://vanillaperl.com/ ) and Strawberry Perl
+( 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
+applications, including compilers and Perl.
+
=head2 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.
=head2 What modules and extensions are available for Perl? What is CPAN? What does CPAN/src/... mean?
-CPAN stands for Comprehensive Perl Archive Network, a ~1.2Gb archive
-replicated on nearly 200 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
+CPAN stands for Comprehensive Perl Archive Network, a multi-gigabyte
+archive replicated on hundreds 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 web site for CPAN is
+walking and CGI scripts. The master web site for CPAN is
http://www.cpan.org/ and there is the CPAN Multiplexer at
-http://www.cpan.org/CPAN.html which will choose a mirror near you
-via DNS. See http://www.perl.com/CPAN (without a slash at the
-end) for how this process works. Also, http://mirror.cpan.org/
-has a nice interface to the http://www.cpan.org/MIRRORED.BY
-mirror directory.
+http://www.cpan.org/CPAN.html which will choose a mirror near you via
+DNS. See http://www.perl.com/CPAN (without a slash at the end) for
+how this process works. Also, http://mirror.cpan.org/ has a nice
+interface to the http://www.cpan.org/MIRRORED.BY mirror directory.
-See the CPAN FAQ at http://www.cpan.org/misc/cpan-faq.html for
-answers to the most frequently asked questions about CPAN
-including how to become a mirror.
+See the CPAN FAQ at http://www.cpan.org/misc/cpan-faq.html for answers
+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
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
+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
ftp://ftp.funet.fi/pub/languages/perl/CPAN/misc/japh .
-Considering that there are close to two thousand 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.
+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/
+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.
See http://www.cpan.org/modules/00modlist.long.html or
-http://search.cpan.org/ for a more complete list of modules by category.
+http://search.cpan.org/ for a more complete list of modules by
+category.
-CPAN is not affiliated with O'Reilly Media.
+CPAN is a free service and is not affiliated with O'Reilly Media.
=head2 Is there an ISO or ANSI certified version of Perl?
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 http://perldoc.cpan.org/ or
-http://www.perldoc.com/ both offer the complete documentation
-in html format.
+If all else fails, consult http://perldoc.perl.org/ which has the
+complete documentation in HTML and PDF format.
-Many good books have been written about Perl--see the section below
-for more details.
+Many good books have been written about Perl--see the section later in
+L<perlfaq2> for more details.
Tutorial documents are included in current or upcoming Perl releases
include L<perltoot> for objects or L<perlboot> for a beginner's
L<perlreftut> for managing references, L<perlretut> for regular
expressions, L<perlthrtut> for threads, L<perldebtut> for debugging,
and L<perlxstut> for linking C and Perl together. There may be more
-by the time you read this. The following URLs might also be of
-assistance:
+by the time you read this. These URLs might also be useful:
- http://perldoc.cpan.org/
- http://www.perldoc.com/
+ http://perldoc.perl.org/
http://bookmarks.cpan.org/search.cgi?cat=Training%2FTutorials
=head2 What are the Perl newsgroups on Usenet? Where do I post questions?
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
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.
There is a list of these books, some with extensive reviews, at
-http://books.perl.org/ .
+http://books.perl.org/ . If you don't see your book listed here, you
+can write to perlfaq-workers@perl.org .
The incontestably definitive reference book on Perl, written by
-the creator of Perl, is now (Sept 2004) in its third edition:
+the creator of Perl, is Programming Perl:
Programming Perl (the "Camel Book"):
by Larry Wall, Tom Christiansen, and Jon Orwant
http://www.oreilly.com/catalog/perlckbk2/
If you're already a seasoned programmer, then the Camel Book might
-suffice for you to learn Perl from. If you're not, check out the
+suffice for you to learn Perl. If you're not, check out the
Llama book:
- Learning Perl (the "Llama Book")
- by Randal L. Schwartz and Tom Phoenix
- ISBN 0-596-00132-0 [3rd edition July 2001]
- http://www.oreilly.com/catalog/lperl3/
+ 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/
And for more advanced information on writing larger programs,
presented in the same style as the Llama book, continue your education
with the Alpaca book:
- Learning Perl Objects, References, and Modules (the "Alpaca Book")
- by Randal L. Schwartz, with Tom Phoenix (foreword by Damian Conway)
- ISBN 0-596-00478-8 [1st edition June 2003]
+ Intermediate Perl (the "Alpaca Book")
+ by Randal L. Schwartz and brian d foy, with Tom Phoenix (foreword by Damian Conway)
+ ISBN 0-596-10206-2 [1st edition March 2006]
http://www.oreilly.com/catalog/lrnperlorm/
-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, please check out the
-delightful book
-
- Perl: The Programmer's Companion
- by Nigel Chapman
- ISBN 0-471-97563-X [1997, 3rd printing Spring 1998]
- http://www.wiley.com/compbooks/catalog/97563-X.htm
- http://www.wiley.com/compbooks/chapman/perl/perltpc.html (errata etc)
-
-If you are more at home in Windows the following is available
-(though unfortunately rather dated).
-
- Learning Perl on Win32 Systems (the "Gecko Book")
- by Randal L. Schwartz, Erik Olson, and Tom Christiansen,
- with foreword by Larry Wall
- ISBN 1-56592-324-3 [1st edition August 1997]
- http://www.oreilly.com/catalog/lperlwin/
-
Addison-Wesley ( http://www.awlonline.com/ ) and Manning
( http://www.manning.com/ ) are also publishers of some fine Perl books
such as I<Object Oriented Programming with Perl> by Damian Conway and
Perl 5 Pocket Reference
by Johan Vromans
- ISBN 0-596-00032-4 [3rd edition May 2000]
- http://www.oreilly.com/catalog/perlpr3/
-
- Perl in a Nutshell
- by Ellen Siever, Stephan Spainhour, and Nathan Patwardhan
- ISBN 1-56592-286-7 [1st edition December 1998]
- http://www.oreilly.com/catalog/perlnut/
+ ISBN 0-596-00374-9 [4th edition July 2002]
+ http://www.oreilly.com/catalog/perlpr4/
=item Tutorials
Elements of Programming with Perl
by Andrew L. Johnson
ISBN 1-884777-80-5 [1st edition October 1999]
- http://www.manning.com/Johnson/
+ http://www.manning.com/johnson/
Learning Perl
- by Randal L. Schwartz and Tom Phoenix
- ISBN 0-596-00132-0 [3rd edition July 2001]
- http://www.oreilly.com/catalog/lperl3/
+ by Randal L. Schwartz, Tom Phoenix, and brian d foy
+ ISBN 0-596-52010-7 [5th edition June 2008]
+ http://oreilly.com/catalog/9780596520106/
- Learning Perl Objects, References, and Modules
- by Randal L. Schwartz, with Tom Phoenix (foreword by Damian Conway)
- ISBN 0-596-00478-8 [1st edition June 2003]
- http://www.oreilly.com/catalog/lrnperlorm/
+ Intermediate Perl (the "Alpaca Book")
+ by Randal L. Schwartz and brian d foy, with Tom Phoenix (foreword by Damian Conway)
+ ISBN 0-596-10206-2 [1st edition March 2006]
+ http://www.oreilly.com/catalog/intermediateperl/
- Learning Perl on Win32 Systems
- by Randal L. Schwartz, Erik Olson, and Tom Christiansen,
- with foreword by Larry Wall
- ISBN 1-56592-324-3 [1st edition August 1997]
- http://www.oreilly.com/catalog/lperlwin/
-
- Perl: The Programmer's Companion
- by Nigel Chapman
- ISBN 0-471-97563-X [1997, 3rd printing Spring 1998]
- http://www.wiley.com/compbooks/catalog/97563-X.htm
- http://www.wiley.com/compbooks/chapman/perl/perltpc.html (errata etc)
-
- Cross-Platform Perl
- by Eric Foster-Johnson
- ISBN 1-55851-483-X [2nd edition September 2000]
- http://www.pconline.com/~erc/perlbook.htm
-
- MacPerl: Power and Ease
- by Vicki Brown and Chris Nandor,
- with foreword by Matthias Neeracher
- ISBN 1-881957-32-2 [1st edition May 1998]
- http://www.macperl.com/ptf_book/
+ Mastering Perl
+ by brian d foy
+ ISBN 0-596-52724-1 [1st edition July 2007]
+ http://www.oreilly.com/catalog/9780596527242/
=item Task-Oriented
=item Special Topics
+ Perl Best Practices
+ by Damian Conway
+ ISBN: 0-596-00173-8 [1st edition July 2005]
+ http://www.oreilly.com/catalog/perlbp/
+
+ Higher Order Perl
+ by Mark-Jason Dominus
+ ISBN: 1558607013 [1st edition March 2005]
+ http://hop.perl.plover.com/
+
Perl 6 Now: The Core Ideas Illustrated with Perl 5
by Scott Walters
- ISBN 1-59059-395-2 [1st edition December 2004
+ ISBN 1-59059-395-2 [1st edition December 2004]
http://apress.com/book/bookDisplay.html?bID=355
Mastering Regular Expressions
Damian Conway
with foreword by Randal L. Schwartz
ISBN 1-884777-79-1 [1st edition August 1999]
- http://www.manning.com/Conway/
+ http://www.manning.com/conway/
Data Munging with Perl
Dave Cross
ISBN 0-596-00503-2 [1st edition January 2004]
http://www.oreilly.com/catalog/perldebugpr/
+ Pro Perl Debugging
+ by Richard Foley with Andy Lester
+ ISBN 1-59059-454-1 [1st edition July 2005]
+ http://www.apress.com/book/view/1590594541
+
=back
-=head2 Perl in Magazines
+=head2 Which magazines have Perl content?
-The first (and for a long time, only) periodical devoted to All Things Perl,
-I<The Perl Journal> contains tutorials, demonstrations, case 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 moved to a
-reader-supported monthly e-zine format in which subscribers can download
-issues as PDF documents. For more details on TPJ, see http://www.tpj.com/
+I<The Perl Review> ( http://www.theperlreview.com ) focuses on Perl
+almost completely (although it sometimes sneaks in an article about
+another language). There's also I<$foo Magazin>, a german magazine
+dedicated to Perl, at ( http://www.foo-magazin.de ).
-Beyond this, magazines that frequently carry quality articles on
-Perl are 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/ )
+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/ )
The Perl columns of Randal L. Schwartz are available on the web at
http://www.stonehenge.com/merlyn/WebTechniques/ ,
http://www.stonehenge.com/merlyn/UnixReview/ , and
http://www.stonehenge.com/merlyn/LinuxMag/ .
-=head2 Perl on the Net: FTP and WWW Access
-
-To get the best performance, pick a site from the list at
-http://www.cpan.org/SITES.html . From there you can find the quickest
-site for you.
-
-You may also use xx.cpan.org where "xx" is the 2-letter country code
-for your domain; e.g. Australia would use au.cpan.org. [Note: This
-only applies to countries that host at least one mirror.]
+The first (and for a long time, only) periodical devoted to All Things
+Perl, I<The Perl Journal> contains tutorials, demonstrations, case
+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
+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
+http://www.ddj.com/ .
=head2 What mailing lists are there for Perl?
http://lists.perl.org/
-=head2 Archives of comp.lang.perl.misc
+=head2 Where are the archives for comp.lang.perl.misc?
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.
-For Perl modules, you can submit bug reports to the Request Tracker set
-up at http://rt.cpan.org .
+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.
-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.
+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.
-Read the perlbug(1) man page (perl5.004 or later) for more information.
+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 .
+
+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?
which maintains the web site http://www.perl.org/ as a general
advocacy site for the Perl language. It uses the domain to provide
general support services to the Perl community, including the hosting
-of mailing lists, web sites, and other services. 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
+of mailing lists, web sites, and other services. There are also many
+other sub-domains for special topics like learning Perl, Perl news, jobs
+in Perl, such as:
http://learn.perl.org/
http://use.perl.org/
a replicated worldwide repository of Perl software, see
the I<What is CPAN?> question earlier in this document.
+=head1 REVISION
+
+Revision: $Revision$
+
+Date: $Date$
+
+See L<perlfaq> for source control details and availability.
+
=head1 AUTHOR AND COPYRIGHT
-Copyright (c) 1997-2005 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