Skip to content

Commit

Permalink
I started to update some references to the latest version of Perl
Browse files Browse the repository at this point in the history
(since 5.8.8 just came out), then I got a little wild. Some of this
diff is just better line wrapping.

* What is Ponie?
   + rewrote the answer. I think the old answer assumes a bit too much
   about what the reader already knows. I mention Parrot and provide a
   link to its project.

* What is a JAPH?
   + Explained a tiny bit more about the history

* Where can I get a list of Larry Wall witticisms?
   + These sort of questions are answered with "Google".  I still
   provide a link, and also one to Wikiquote, which has links to
   their use

* How can I convince my sysadmin/supervisor/employees to use version
5/5.6.1/Perl instead of some other language?
   + this is the one that started it all. I don't like the /
   constructs, and the versions are dated.
   + I removed a lot of the text since it duplicates info in earlier
   answers
   + I'd like to provide some good advocacy links, but they've all
   disappeared. www.perl.org has nothing useful :(


git-svn-id: http://svn.perl.org/modules/perlfaq/trunk@2924 50811bd7-b8ce-0310-adc1-d9db26280581
  • Loading branch information
comdog committed Feb 21, 2006
1 parent 41797a0 commit 885d606
Showing 1 changed file with 107 additions and 102 deletions.
209 changes: 107 additions & 102 deletions perlfaq1.pod
Expand Up @@ -58,70 +58,67 @@ 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 *

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 2008).
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

Expand Down Expand Up @@ -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?

Expand Down Expand Up @@ -328,70 +328,75 @@ 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 AUTHOR AND COPYRIGHT

Expand Down

0 comments on commit 885d606

Please sign in to comment.