Finish converting overload.t to Test::More
[p5sagit/p5-mst-13.2.git] / pod / perlfaq1.pod
index 0e15587..1078b7e 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-perlfaq1 - General Questions About Perl ($Revision: 1.17 $, $Date: 2005/01/31 15:52:15 $)
+perlfaq1 - General Questions About Perl ($Revision: 3606 $)
 
 =head1 DESCRIPTION
 
@@ -58,20 +58,20 @@ users the informal support will more than suffice.  See the answer to
 
 (contributed by brian d foy)
 
-There is often a matter of opinion and taste, and there isn't any
-one answer that fits anyone.  In general, you want to use either
-the current stable release, or the stable release immediately prior
-to that one.  Currently, those are perl5.8.x and perl5.6.x, respectively.
+There is often a matter of opinion and taste, and there isn't any one
+answer that fits anyone.  In general, you want to use either the current
+stable release, or the stable release immediately prior to that one. 
+Currently, those are perl5.8.x and perl5.6.x, respectively.
 
-Beyond that, you have to consider several things and decide which
-is best for you.
+Beyond that, you have to consider several things and decide which is best
+for you.
 
 =over 4
 
 =item *
 
-If things aren't broken, upgrading perl may break
-them (or at least issue new warnings).
+If things aren't broken, upgrading perl may break them (or at least issue
+new warnings).
 
 =item *
 
@@ -79,49 +79,46 @@ The latest versions of perl have more bug fixes.
 
 =item *
 
-The Perl community is geared toward supporting the most
-recent releases, so you'll have an easier time finding help for
-those.
+The Perl community is geared toward supporting the most recent releases,
+so you'll have an easier time finding help for those.
 
 =item *
 
-Versions prior to perl5.004 had serious security problems with
-buffer overflows, and in some cases have CERT advisories (for
-instance, http://www.cert.org/advisories/CA-1997-17.html ).
+Versions prior to perl5.004 had serious security problems with buffer
+overflows, and in some cases have CERT advisories (for instance,
+http://www.cert.org/advisories/CA-1997-17.html ).
 
 =item *
 
-The latest versions are probably the least deployed and
-widely tested, so you may want to wait a few months after their
-release and see what problems others have if you are risk averse.
+The latest versions are probably the least deployed and widely tested, so
+you may want to wait a few months after their release and see what
+problems others have if you are risk averse.
 
 =item *
 
-The immediate, previous releases (i.e. perl5.6.x ) are usually
-maintained for a while, although not at the same level as the
-current releases.
+The immediate, previous releases (i.e. perl5.6.x ) are usually maintained
+for a while, although not at the same level as the current releases.
 
 =item *
 
-No one is actively supporting perl4.x.  Five years ago it was
-a dead camel carcass (according to this document).  Now it's barely
-a skeleton as its whitewashed bones have fractured or eroded.
+No one is actively supporting perl4.x.  Five years ago it was a dead
+camel carcass (according to this document).  Now it's barely a skeleton
+as its whitewashed bones have fractured or eroded.
 
 =item *
 
-There is no perl6.x for the next couple of years.  Stay tuned,
-but don't worry that you'll have to change major versions of Perl
-soon (i.e. before 2006).
+There is no perl6.x for the next couple of years.  Stay tuned, but don't
+worry that you'll have to change major versions of Perl soon (i.e. before
+2008).
 
 =item *
 
-There are really two tracks of perl development: a
-maintenance version and an experimental version.  The
-maintenance versions are stable, and have an even number
-as the minor release (i.e. perl5.8.x, where 8 is the minor
-release).  The experimental versions may include features that
-don't make it into the stable versions, and have an odd number
-as the minor release (i.e. perl5.9.x, where 9 is the minor release).
+There are really two tracks of perl development: a maintenance version
+and an experimental version.  The maintenance versions are stable, and
+have an even number as the minor release (i.e. perl5.8.x, where 8 is the
+minor release).  The experimental versions may include features that
+don't make it into the stable versions, and have an odd number as the
+minor release (i.e. perl5.9.x, where 9 is the minor release).
 
 =back
 
@@ -155,15 +152,18 @@ See L<perlhist> for a history of Perl revisions.
 
 =head2 What is Ponie?
 
-At The O'Reilly Open Source Software Convention in 2003, Artur
-Bergman, Fotango, and The Perl Foundation announced a project to
-run perl5 on the Parrot virtual machine named Ponie. Ponie stands for
-Perl On New Internal Engine.  The Perl 5.10 language implementation
-will be used for Ponie, and there will be no language level
-differences between perl5 and ponie.  Ponie is not a complete rewrite
-of perl5.
+(contributed by brian d foy)
+
+Ponie stands for "Perl On the New Internal Engine", started by Arthur
+Bergman from Fotango in 2003, and subsequently run as a project of The
+Perl Foundation. Instead of using the current Perl internals, Ponie
+creates a new one that provides a translation path from Perl 5 to Perl 6
+(or anything else that targets Parrot, actually). You can also just keep
+using Perl 5 with Parrot, the virtual machine which will compile and run
+Perl 6 bytecode.
 
-For more details, see http://www.poniecode.org/
+You can get more information at http://www.poniecode.org/ and
+http://www.parrotcode.org .
 
 =head2 What is perl6?
 
@@ -328,74 +328,87 @@ programmers prefer to avoid them altogether.
 
 =head2 What is a JAPH?
 
-These are the "just another perl hacker" signatures that some people
-sign their postings with.  Randal Schwartz made these famous.  About
-100 of the earlier ones are available from
-http://www.cpan.org/misc/japh .
+(contributed by brian d foy)
+
+JAPH stands for "Just another Perl hacker,", which Randal Schwartz used
+to sign email and usenet messages starting in the late 1980s. He
+previously used the phrase with many subjects ("Just another x hacker,"),
+so to distinguish his JAPH, he started to write them as Perl programs:
+
+       print "Just another Perl hacker,";
+
+Note the trailing comma and space, which allows the addition of other
+JAxH clauses for his many other interests.
+
+Other people picked up on this and started to write clever or obfuscated
+programs to produce the same output, spinning things quickly out of
+control while still providing hours of amusement for their creators and
+readers.
+
+CPAN has several JAPH programs at http://www.cpan.org/misc/japh .
 
 =head2 Where can I get a list of Larry Wall witticisms?
 
-Over a hundred quips by Larry, from postings of his or source code,
-can be found at http://www.cpan.org/misc/lwall-quotes.txt.gz .
-
-=head2 How can I convince my sysadmin/supervisor/employees to use version 5/5.6.1/Perl instead of some other language?
-
-If your manager or employees are wary of unsupported software, or
-software which doesn't officially ship with your operating system, you
-might try to appeal to their self-interest.  If programmers can be
-more productive using and utilizing Perl constructs, functionality,
-simplicity, and power, then the typical manager/supervisor/employee
-may be persuaded.  Regarding using Perl in general, it's also
-sometimes helpful to point out that delivery times may be reduced
-using Perl compared to other languages.
-
-If you have a project which has a bottleneck, especially in terms of
-translation or testing, Perl almost certainly will provide a viable,
-quick solution.  In conjunction with any persuasion effort, you
-should not fail to point out that Perl is used, quite extensively, and
-with extremely reliable and valuable results, at many large computer
-software and hardware companies throughout the world.  In fact,
-many Unix vendors now ship Perl by default.  Support is usually
-just a news-posting away, if you can't find the answer in the
-I<comprehensive> documentation, including this FAQ.
-
-See http://www.perl.org/advocacy/ for more information.
-
-If you face reluctance to upgrading from an older version of perl,
-then point out that version 4 is utterly unmaintained and unsupported
-by the Perl Development Team.  Another big sell for Perl5 is the large
-number of modules and extensions which greatly reduce development time
-for any given task.  Also mention that the difference between version
-4 and version 5 of Perl is like the difference between awk and C++.
-(Well, OK, maybe it's not quite that distinct, but you get the idea.)
-If you want support and a reasonable guarantee that what you're
-developing will continue to work in the future, then you have to run
-the supported version.  As of December 2003 that means running either
-5.8.2 (released in November 2003), or one of the older releases like
-5.6.2 (also released in November 2003; a maintenance release to let perl
-5.6 compile on newer systems as 5.6.1 was released in April 2001) or
-5.005_03 (released in March 1999),
-although 5.004_05 isn't that bad if you B<absolutely> need such an old
-version (released in April 1999) for stability  reasons.
-Anything older than 5.004_05 shouldn't be used.
-
-Of particular note is the massive bug hunt for buffer overflow
-problems that went into the 5.004 release.  All releases prior to
-that, including perl4, are considered insecure and should be upgraded
-as soon as possible.
-
-In August 2000 in all Linux distributions a new security problem was
-found in the optional 'suidperl' (not built or installed by default)
-in all the Perl branches 5.6, 5.005, and 5.004, see
-http://www.cpan.org/src/5.0/sperl-2000-08-05/
-Perl maintenance releases 5.6.1 and 5.8.0 have this security hole closed.
-Most, if not all, Linux distribution have patches for this
-vulnerability available, see http://www.linuxsecurity.com/advisories/ ,
-but the most recommendable way is to upgrade to at least Perl 5.6.1.
+(contributed by brian d foy)
+
+Google "larry wall quotes"! You might even try the "I feel lucky" button.
+:)
+
+Wikiquote has the witticisms from Larry along with their source,
+including his usenet postings and source code comments.
+
+If you want a plain text file, try
+http://www.cpan.org/misc/lwall-quotes.txt.gz .
+
+=head2 How can I convince others to use Perl?
+
+(contributed by brian d foy)
+
+Appeal to their self interest! If Perl is new (and thus scary) to them,
+find something that Perl can do to solve one of their problems. That
+might mean that Perl either saves them something (time, headaches, money)
+or gives them something (flexibility, power, testability).
+
+In general, the benefit of a language is closely related to the skill of
+the people using that language. If you or your team can be more faster,
+better, and stronger through Perl, you'll deliver more value. Remember,
+people often respond better to what they get out of it. If you run
+into resistance, figure out what those people get out of the other 
+choice and how Perl might satisfy that requirement.
+
+You don't have to worry about finding or paying for Perl; it's freely
+available and several popular operating systems come with Perl. Community
+support in places such as Perlmonks ( http://www.perlmonks.com )
+and the various Perl mailing lists ( http://lists.perl.org ) means that
+you can usually get quick answers to your problems.
+
+Finally, keep in mind that Perl might not be the right tool for every
+job. You're a much better advocate if your claims are reasonable and
+grounded in reality. Dogmatically advocating anything tends to make
+people discount your message. Be honest about possible disadvantages
+to your choice of Perl since any choice has trade-offs.
+
+You might find these links useful:
+
+=over 4
+
+=item * http://perltraining.com.au/whyperl.html
+
+=item * http://www.perl.org/advocacy/whyperl.html
+
+=back
+
+=head1 REVISION
+
+Revision: $Revision: 3606 $
+
+Date: $Date: 2006-03-06 12:05:47 +0100 (lun, 06 mar 2006) $
+
+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-2006 Tom Christiansen, Nathan Torkington, and
 other authors as noted. All rights reserved.
 
 This documentation is free; you can redistribute it and/or modify it