diff options
Diffstat (limited to 'pod/perlfaq1.pod')
-rw-r--r-- | pod/perlfaq1.pod | 219 |
1 files changed, 116 insertions, 103 deletions
diff --git a/pod/perlfaq1.pod b/pod/perlfaq1.pod index 5c10f9cd75..1078b7ee15 100644 --- a/pod/perlfaq1.pod +++ b/pod/perlfaq1.pod @@ -1,6 +1,6 @@ =head1 NAME -perlfaq1 - General Questions About Perl ($Revision: 1.19 $, $Date: 2005/12/31 00:54:37 $) +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,70 +328,83 @@ 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 |