=head1 NAME
-perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.39 $, $Date: 2006/01/08 14:27:07 $)
+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?
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
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
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/
+ 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, 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/
- 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/
+
+ Mastering Perl
+ by brian d foy
+ ISBN 0-596-52724-1 [1st edition July 2007]
+ http://www.oreilly.com/catalog/9780596527242/
=item Task-Oriented
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 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/
-
-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/ )
+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 ).
+
+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/ .
+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?
Most of the major modules (Tk, CGI, libwww-perl) have their own
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)
-For Perl modules, you can submit bug reports to the Request Tracker set
-up at http://rt.cpan.org .
+First, ensure that you've found an actual bug. Second, ensure you've
+found an actual bug.
-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.
+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.
-Read the perlbug(1) man page (perl5.004 or later) for more information.
+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.
+
+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-2006 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