Perl is a 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).
Perl 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 table used by hashes (previously called ``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 hashes. 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.
Perl 5.6 can optionally be compiled with pthreads. Note that pthread support is considered experimental, and subject to change in future releases. This release contains perl compiled 4 ways, each in it's own subsystem (with common files in a fw_perl.sw.common subsystem):
- -32: for compatibility with old Freeware releases
- -n32: The new standard ABI
- -n32 with pthreads
- -64: only installable on IRIX64 systems
- (-64 with pthreads does not compile in this release...)
The following symlinks are created in /usr/bin if they don't already point to a valid perl binary and there is something to point to: perl4, and perl5. Because there are multiple perl binaries installed into /usr/freeware/bin, each has a unique name based upon threadedness and suffixed by it's ABI. The following symlinks are created as short aliases to an appropriate interpreter if it exists: operl (-32), perl, perl5, thrperl, and perl64.