Fix building MAD with C++ - a MAD_PV of "" is illegal, as it will be free()d.
[p5sagit/p5-mst-13.2.git] / pod / perlfaq2.pod
index 34d4825..f578d41 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -12,43 +12,42 @@ related matters.
 
 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?
 
@@ -59,6 +58,17 @@ 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.
 
+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.
@@ -90,46 +100,46 @@ architecture.
 
 =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?
 
@@ -149,12 +159,11 @@ 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.
 
-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
@@ -162,24 +171,20 @@ approach to objects, L<perlopentut> for file opening semantics,
 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
@@ -221,10 +226,11 @@ This is faster and more productive than just posting a request.
 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
@@ -242,43 +248,23 @@ of real-world examples, mini-tutorials, and complete programs is:
        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
@@ -303,13 +289,8 @@ Recommended books on (or mostly on) Perl follow.
 
        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
 
@@ -321,40 +302,22 @@ Recommended books on (or mostly on) Perl follow.
        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
 
@@ -381,9 +344,19 @@ Recommended books on (or mostly on) Perl follow.
 
 =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
@@ -400,7 +373,7 @@ Recommended books on (or mostly on) Perl follow.
        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
@@ -422,40 +395,41 @@ Recommended books on (or mostly on) Perl follow.
        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?
 
@@ -467,12 +441,12 @@ A comprehensive list of Perl related mailing lists can be found at:
 
        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
@@ -502,20 +476,31 @@ also all come with perl.
 
 =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?
 
@@ -526,9 +511,9 @@ The Perl Foundation is an advocacy organization for the Perl language
 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/
@@ -544,9 +529,17 @@ http://www.cpan.org/ is the Comprehensive Perl Archive Network,
 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