As Adam Turoff explained once, Perl has two subtle advantages: manipulexity and whipuptitude. It’s very important to be able
to solve the problem at hand simply and easily without languages and tools and syntax getting in your way. That’s
whipuptitude. Manipulexity is the ability to use simple tools and build a sufficiently complex solution to a complex problem.
Not everyone who starts learning Perl for whipuptitude needs manipulexity right away, if ever, but having a tool that
supports both is amazingly useful. That’s where Perl’s always aimed–making the easy things easy and the hard things
possible, even if you don’t traditionally think of yourself as a programmer.
Code Fragments only
Many of Perl 5’s other benefits fall out from this philosophy. For example, though the popular conception is that Perl 5 is
mostly a procedural language, there are plenty of functional programming features available–iterators, higher-order
functions, lexical closures, filters, and more. The (admittedly minimal) object system also has a surprising amount of
flexibility. Several CPAN modules provide various types of encapsulation, access control, and dispatch. There are even
refinements of the object system itself, exploring such techniques as prototype-based refinement, mixins, and traits.
There’s more than one way to do it, but many of those ways are freely available and freely usable from the CPAN. The premier
repository system of Perl libraries and components contains thousands of modules, from simple packagings of common idioms to
huge interfaces to graphical packages, databases, and web servers. With few exceptions, the community of CPAN contributors
have solved nearly any common problem you can think of (and many uncommon ones, too).
It’s difficult to say whether Perl excels as a glue language because of the CPAN or that CPAN has succeeded because Perl
excels as a glue language, but being able to munge data between two other programs, processes, libraries, or machines is
highly useful. Perl’s text processing powers have few peers. Sure, you can build the single perfect command-line consisting
of several small CLI utilities, but it’s rare to do it more cleanly or concisely than with Perl.