This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Implement facility to plug in syntax triggered by keywords
[perl5.git] / pod / perlfaq.pod
index e97a59a..1612496 100644 (file)
@@ -1,72 +1,88 @@
 =head1 NAME
 
-perlfaq - frequently asked questions about Perl ($Date: 2004/10/05 22:15:44 $)
+perlfaq - frequently asked questions about Perl
 
 =head1 DESCRIPTION
 
-The perlfaq is divided into several documents based on topics.  A table
-of contents is at the end of this document.
+The perlfaq comprises several documents that answer the most commonly
+asked questions about Perl and Perl programming. It's divided by topic
+into nine major sections outlined in this document.
 
 =head2 Where to get the perlfaq
 
-Extracts of the perlfaq are posted regularly to
-comp.lang.perl.misc.  It is available on many web sites:
-http://www.perldoc.com/ and http://faq.perl.org/
+The perlfaq comes with the standard Perl distribution, so if you have Perl
+you should have the perlfaq. You should also have the C<perldoc> tool
+that let's you read the L<perlfaq>:
 
-=head2 How to contribute to the perlfaq
+       $ perldoc perlfaq
+
+Besides your local system, you can find the perlfaq on the web, including
+at http://perldoc.perl.org/ .
+
+The perlfaq is an evolving document and you can read the latest version
+at http://faq.perl.org/ . The perlfaq-workers periodically post extracts
+of the latest perlfaq to comp.lang.perl.misc.
 
-You may mail corrections, additions, and suggestions to
-perlfaq-workers@perl.org .  This alias should not be used to
-I<ask> FAQs.  It's for fixing the current FAQ. Send
-questions to the comp.lang.perl.misc newsgroup.  You can
-view the source tree at http://cvs.perl.org/cvsweb/perlfaq/
-(which is outside of the main Perl source tree).  The CVS
-repository notes all changes to the FAQ.
+You can view the source tree at
+https://github.com/briandfoy/perlfaq (which is outside of the
+main Perl source tree).  The git repository notes all changes to the FAQ
+and holds the latest version of the working documents and may vary
+significantly from the version distributed with the latest version of
+Perl. Check the repository before sending your corrections. 
 
-=head2 What will happen if you mail your Perl programming problems to the authors
+=head2 How to contribute to the perlfaq
+
+You can mail corrections, additions, and suggestions to
+C<< <perlfaq-workers AT perl DOT org> >>. The perlfaq volunteers use this
+address to coordinate their efforts and track the perlfaq development.
+They appreciate your contributions to the FAQ but do not have time to
+provide individual help, so don't use this address to ask FAQs.
 
-Your questions will probably go unread, unless they're
-suggestions of new questions to add to the FAQ, in which
-case they should have gone to the perlfaq-workers@perl.org
-instead.
+The perlfaq server posts extracts of the perlfaq to that newsgroup every
+6 hours (or so), and the community of volunteers reviews and updates the
+answers. If you'd like to help review and update the answers, check out
+comp.lang.perl.misc.
 
-You should have read section 2 of this faq.  There you would
-have learned that comp.lang.perl.misc is the appropriate
-place to go for free advice.  If your question is really
-important and you require a prompt and correct answer, you
-should hire a consultant.
+You can also fork the git repository for the perlfaq and send a pull
+request so the main repository can pull your changes. The repository
+is at:
 
-=head1 Credits
+       https://github.com/briandfoy/perlfaq
 
-The original perlfaq was written by Tom Christiansen, then expanded
-by collaboration between Tom and Nathan Torkington.  The current
-document is maintained by the perlfaq-workers (perlfaq-workers@perl.org).
-Several people have contributed answers, corrections, and comments.
+=head2 What will happen if you mail your Perl programming problems to the authors?
 
-=head1 Author and Copyright Information
+The perlfaq-workers like to keep all traffic on the perlfaq-workers list
+so that everyone can see the work being done (and the work that needs to
+be done). The mailing list serves as an official record. If you email the
+authors or maintainers directly, you'll probably get a reply asking you
+to post to the mailing list. If you don't get a reply, it probably means
+that the person never saw the message or didn't have time to deal with
+it. Posting to the list allows the volunteers with time to deal with it
+when others are busy.
 
-Copyright (c) 1997-2003 Tom Christiansen, Nathan Torkington, and 
-other contributors noted in the answers.
+If you have a question that isn't in the FAQ and you would like help with
+it, try the resources in L<perlfaq2>.
 
-All rights reserved.
+=head1 CREDITS
 
-=head2 Bundled Distributions
+Tom Christiansen wrote the original perlfaq then expanded it with the
+help of Nat Torkington. The perlfaq-workers maintain current document
+and the dezinens of comp.lang.perl.misc regularly review and update the
+FAQ. Several people have contributed answers, corrections, and comments,
+and the perlfaq notes those contributions wherever appropriate.
 
-This documentation is free; you can redistribute it and/or modify it
-under the same terms as Perl itself.
+=head1 AUTHOR AND COPYRIGHT
 
-Irrespective of its distribution, all code examples in these files
-are hereby placed into the public domain.  You are permitted and
-encouraged to use this code in your own programs for fun
-or for profit as you see fit.  A simple comment in the code giving
-credit would be courteous but is not required.
+Copyright (c) 1997-2009 Tom Christiansen, Nathan Torkington, and
+other authors as noted. All rights reserved.
 
-=head2 Disclaimer
+Tom Christainsen wrote the original version of this document.
+brian d foy C<< <bdfoy@cpan.org> >> wrote this version. See the
+individual perlfaq documents for additional copyright information.
 
-This information is offered in good faith and in the hope that it may
-be of use, but is not guaranteed to be correct, up to date, or suitable
-for any particular purpose whatsoever.  The authors accept no liability
-in respect of this information or its use.
+This document is available under the same terms as Perl itself. Code
+examples in all the perlfaq documents are in the public domain. Use
+them as you see fit and at your own risk with no warranty from anyone.
 
 =head1 Table of Contents
 
@@ -92,13 +108,10 @@ in respect of this information or its use.
 
 =item perlfaq9 - Networking
 
-
 =back
 
-
 =head1 The Questions
 
-
 =head2 L<perlfaq1>: General Questions About Perl
 
 Very general, high-level questions about Perl.
@@ -119,15 +132,15 @@ Which version of Perl should I use?
 
 =item *
 
-What are perl4 and perl5?
+What are Perl 4, Perl 5, or Perl 6?
 
 =item *
 
-What is Ponie?
+What was Ponie?
 
 =item *
 
-What is perl6?
+What is Perl 6?
 
 =item *
 
@@ -167,7 +180,7 @@ Where can I get a list of Larry Wall witticisms?
 
 =item *
 
-How can I convince my sysadmin/supervisor/employees to use version 5/5.6.1/Perl instead of some other language?
+How can I convince others to use Perl?
 
 =back
 
@@ -180,19 +193,19 @@ Where to find source and documentation for Perl, support, and related matters.
 
 =item *
 
-What machines support Perl?  Where do I get it?
+What machines support perl?  Where do I get it?
 
 =item *
 
-How can I get a binary version of Perl?
+How can I get a binary version of perl?
 
 =item *
 
-I don't have a C compiler on my system.  How can I compile perl?
+I don't have a C compiler. How can I build my own Perl interpreter?
 
 =item *
 
-I copied the Perl binary from one machine to another, but scripts don't work.
+I copied the perl binary from one machine to another, but scripts don't work.
 
 =item *
 
@@ -224,11 +237,7 @@ Perl Books
 
 =item *
 
-Perl in Magazines
-
-=item *
-
-Perl on the Net: FTP and WWW Access
+Which magazines have Perl content?
 
 =item *
 
@@ -236,11 +245,11 @@ What mailing lists are there for Perl?
 
 =item *
 
-Archives of comp.lang.perl.misc
+Where are the archives for comp.lang.perl.misc?
 
 =item *
 
-Where can I buy a commercial version of Perl?
+Where can I buy a commercial version of perl?
 
 =item *
 
@@ -313,11 +322,7 @@ How can I use curses with Perl?
 
 =item *
 
-How can I use X or Tk with Perl?
-
-=item *
-
-How can I generate simple menus without using CGI or Tk?
+How can I write a GUI (X, Tk, Gtk, etc.) in Perl?
 
 =item *
 
@@ -349,10 +354,6 @@ How can I compile my Perl program into byte code or C?
 
 =item *
 
-How can I compile Perl into Java?
-
-=item *
-
 How can I get C<#!perl> to work on [MS-DOS,NT,...]?
 
 =item *
@@ -373,11 +374,11 @@ Where can I learn about object-oriented Perl programming?
 
 =item *
 
-Where can I learn about linking C with Perl? [h2xs, xsubpp]
+Where can I learn about linking C with Perl?
 
 =item *
 
-I've read perlembed, perlguts, etc., but I can't embed perl in
+I've read perlembed, perlguts, etc., but I can't embed perl in my C program; what am I doing wrong?
 
 =item *
 
@@ -466,7 +467,7 @@ How do I find yesterday's date?
 
 =item *
 
-Does Perl have a Year 2000 problem?  Is Perl Y2K compliant?
+Does Perl have a Year 2000 problem? Is Perl Y2K compliant?
 
 =item *
 
@@ -618,6 +619,10 @@ How do I process an entire hash?
 
 =item *
 
+How do I merge two hashes?
+
+=item *
+
 What happens if I add or remove keys from a hash while iterating over it?
 
 =item *
@@ -715,7 +720,7 @@ How do I flush/unbuffer an output filehandle?  Why must I do this?
 
 =item *
 
-How do I change one line in a file/delete a line in a file/insert a line in the middle of a file/append to the beginning of a file?
+How do I change, delete, or insert a line in a file, or append to the beginning of a file?
 
 =item *
 
@@ -727,6 +732,10 @@ How can I use Perl's C<-i> option from within a program?
 
 =item *
 
+How can I copy a file?
+
+=item *
+
 How do I make a temporary file name?
 
 =item *
@@ -751,6 +760,10 @@ How can I write() into a string?
 
 =item *
 
+How can I open a filehandle to a string?
+
+=item *
+
 How can I output my numbers with commas added?
 
 =item *
@@ -857,12 +870,24 @@ How do I select a random line from a file?
 
 Why do I get weird spaces when I print an array of lines?
 
+=item *
+
+How do I traverse a directory tree?
+
+=item *
+
+How do I delete a directory tree?
+
+=item *
+
+How do I copy an entire directory?
+
 =back
 
 
 =head2 L<perlfaq6>: Regular Expressions
 
-This section is surprisingly small because the rest of the FAQ is littered with answers involving regular expressions. For example, decoding a URL and checking whether something is a number are handled with regular expressions, but those answers are found elsewhere in this document (in L<perlfaq9>: ``How do I decode or create those %-encodings on the web'' and L<perlfaq4>: ``How do I determine whether a scalar is a number/whole/integer/float'', to be precise).
+This section is surprisingly small because the rest of the FAQ is littered with answers involving regular expressions. For example, decoding a URL and checking whether something is a number are handled with regular expressions, but those answers are found elsewhere in this document (in L<perlfaq9>: "How do I decode or create those %-encodings on the web" and L<perlfaq4>: "How do I determine whether a scalar is a number/whole/integer/float", to be precise).
 
 =over 4
 
@@ -880,6 +905,10 @@ How can I pull out lines between two patterns that are themselves on different l
 
 =item *
 
+How do I match XML, HTML, or other nasty, ugly things with a regex?
+
+=item *
+
 I put a regular expression into $/ but it didn't work. What's wrong?
 
 =item *
@@ -956,7 +985,7 @@ How can I match strings with multibyte characters?
 
 =item *
 
-How do I match a pattern that is supplied by the user?
+How do I match a regular expression that's in a variable?
 
 =back
 
@@ -1005,6 +1034,10 @@ How do I create a module?
 
 =item *
 
+How do I adopt or take over a module already on CPAN?
+
+=item *
+
 How do I create a class?
 
 =item *
@@ -1065,7 +1098,7 @@ Why can't a method included in this same file be found?
 
 =item *
 
-How can I find out my current package?
+How can I find out my current or calling package?
 
 =item *
 
@@ -1327,7 +1360,7 @@ How do I download a file from the user's machine?  How do I open a file on anoth
 
 =item *
 
-How do I make a pop-up menu in HTML?
+How do I make an HTML pop-up menu with Perl?
 
 =item *
 
@@ -1391,7 +1424,7 @@ How do I read mail?
 
 =item *
 
-How do I find out my hostname/domainname/IP address?
+How do I find out my hostname, domainname, or IP address?
 
 =item *