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
Expression syntax corresponds quite closely to C expression syntax.
Unlike most Unix utilities,
does not arbitrarily limit the size of your data -- if you've got
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
uses sophisticated pattern matching techniques to scan large amounts of
data very quickly.
Although optimized for scanning text,
can also deal with binary data, and can make dbm files look like associative
arrays (where dbm is available).
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
may be for you.
There are also translators to turn your
OK, enough hype.