Perl is an interpreted language optimized for scanning arbitrary
text files, extracting information from those text files, and printing
reports based on that information. It's also a good language for many
system management tasks. The language is intended to be practical (easy
to use, efficient, complete) rather than beautiful (tiny, elegant,
minimal). It combines (in the author's opinion, anyway) some of the
best features of C
, sed
, awk
, and sh
, so
people familiar with those languages should have little difficulty with
it. (Language historians will also note some vestiges of csh
,
Pascal
, and even BASIC-PLUS
.) Expression syntax
corresponds quite closely to C expression syntax. Unlike most Unix
utilities, perl does not arbitrarily limit the size of your
data--if you've got the memory, perl can slurp in your whole
file as a single string. Recursion is of unlimited depth. And the hash
tables used by associative arrays grow as necessary to prevent degraded
performance. Perl uses sophisticated pattern matching techniques
to scan large amounts of data very quickly. Although optimized for
scanning text, perl can also deal with binary data, and can make
dbm files look like associative arrays (where dbm is available). Setuid
perl scripts are safer than C programs through a dataflow tracing
mechanism which prevents many stupid security holes. If you have a
problem that would ordinarily use sed
or awk
or sh
,
but it exceeds their capabilities or must run a little faster, and you
don't want to write the silly thing in C, then perl may be for
you. There are also translators to turn your sed
and awk
scripts into perl scripts. OK, enough hype.