As the name "Practical Extraction and Report Language" coins out, Perl is a
*(programming language) which aims at being effective in practice, not at
developing a nice and simple semantics (though whenever nice things are
effective, Perl does them too). Thus after a short learning time, it becomes a
great tool for jobs of interfacing software, converting file formats, making
small network daemons, etc. Perl is perfectly adapted to the _(Unix) philosophy 
and practice. However, it is a bad choice when long-term/wide-area
consistency is required.

The principal advantage of Perl is that you can quickly hack up a working
program to do text/binary manipulations that would be quite cumbersome
using previous tools, that were either too generic, with a cumbersome
interface to Internet-standard human-readable files, or too specific,
unable to express more complex file manipulations. Perl allows you to do
things in tons of different ways, so everyone can find one that fits his
taste and thinking pattern.

The principal disadvantage of Perl is that, allowing too many things as
valid programs, it makes it difficult to specify and verify bugs out;
the terse syntax that makes hacking quicker makes debugging slower. This
is typical of traditional non-metaprogramming development, where a
compromise between writeability and readability is needed: only a
metaprogramming environment could help transform a valid program into a
clean valid program of equivalent meaning.
<BR>--unknown

<UL CLASS="links">
<LI><A HREF="http://www.perl.org/">Perl Mongers</A></LI>
<LI><A HREF="http://www.cis.ufl.edu/perl/">The University of Florida Perl Archive</A></LI>
</UL>