The Essential Perl Books

All three books are well written, lucid and (in the best hacker tradition) quite witty and funny as well.

Perl has become one of the most important
languages in the Unix/Internet world and is by far the most popular
choice for CGI scripts on the World Wide Web. It is still growing
rapidly and spreading to new applications. Perl is even making
headway in non-Unix environments—a fact well attested to by the
Microsoft NT presentations at the first Perl Conference, held
August 19-21, 1997, in San Jose under the auspices of O'Reilly and
Associates.

If you don't yet know Perl, learning it would be a good idea.
For many kinds of end-user and system-administration applications
(especially those involving text processing or the gluing together
of several standard Unix tools), Perl is beyond price. Of the major
interpretive Unix languages (shell, Tcl, Python, Emacs Lisp) only
Python is truly competitive with Perl over Perl's entire range of
applications, and even Python cannot match Perl's facilities for
regular-expression-based text handling (though on the other hand
Python probably scales up to very large and complex projects
better).

The vitality of Perl as a language is matched by the strength of
these three books, which between them do a remarkably complete job
of documenting the language. You probably need to own two out of
three of these: the dilemma is deciding which two, for they are
each aimed at rather different audiences.

Learning Perl (familiarly known as “the
llama book”) is the introductory volume. It aims to teach
elementary Perl quickly and appears to be targeted at people with
little programming experience. While it does an excellent job of
covering the basics, it omits a number of advanced topics including
references and Perl's object system. It includes many exercises and
could profitably be used as a textbook.

Programming Perl (well known as “the
camel book”) is the intermediate-level volume and the best
self-contained exposition of Perl. It describes the entire Perl
language but provides only teasers on various Perl extensions (such
as Perl/Tk for GUI programming) and the techniques for embedding
Perl in C applications.

If you've seen the first edition of Programming
Perl, you'll note many changes in the second edition
besides just the coverage of the new Perl 5 features. The rather
bizarre and haphazard organization of the first edition has been
fixed—a huge plus. On the other hand, most of the whole-program
Perl examples have been removed in the interest of keeping the
book's page count below 700. (Tom Christiansen confirmed at the San
Jose conference that he is working on a separate Perl
cookbook.)

Advanced Perl Programming is a tome of
esoterica for experienced Perl-heads. (It's fair to say you must be
thoroughly versed in the material of the camel book to benefit from
this “panther book”.) Within the language, it offers in-depth
coverage of references, the Perl object system, typeglobs, eval,
closures, modules and persistent-object techniques. It also covers
the use of Perl/Tk to construct GUIs. The last three chapters cover
extending Perl, embedding Perl and Perl's internals, each in
detail.

The author of Advanced Perl Programming
illuminates Perl by connecting it to an impressively broad range of
issues in computer science and programming language design. At the
same time, his discussion of the way Perl does things is
refreshingly concrete. His diagrams of Perl's internal data
structures do much to demystify such knotty topics as typeglobs.
The end-of-chapter sections systematically comparing Perl features
to analogs in other languages are extremely valuable. Finally,
though Mr. Srinivasan clearly loves Perl, he is not afraid to point
out its uglinesses and occasional design shortcomings. As a
specialist in computer language design myself, I found his comments
uniformly intelligent, incisive and tasteful.

The only flaw I detect in this book is a couple of chapters
that describe favorite Perl hacks of the author's in a way not
strongly motivated by the rest of the text. Even so,
Advanced Perl Programming is an astonishingly
sustained tour de force and, if not the best book of the three,
certainly the most intellectually stimulating.

All three books are well written, lucid and (in the best
hacker tradition) quite witty and funny as well. If you are going
to buy only one Perl book, it should be Programming
Perl, which serves quite well as a desk reference for
the language. Serious programmers will find a rich feast in
Advanced Perl Programming. Learning
Perl serves as a satisfactory and nonthreatening
introduction for those who lack the hacker nature.

All three books also do an excellent job of transmitting the
Perl culture—the attitude, the jokes, the sense of mission, the
deep connection to Unix tradition and the free-software culture. As
with Linux, Perl's true strength is the collective talents of its
enthusiasts, and those are well on display in these books.

Indeed, as Perl continues to spread to NT and Windows
environments, it's not too much to hope that the spread of Perl
culture will imply a lot of quiet subversion that prepares people
for the Linux way. Even if these books were not excellent in many
other ways, they would earn a warm welcome in
LJ's pages on that account.

Eric S. Raymond
(esr@thyrsus.com)
is a semi-regular LJ contributor who thinks Perl is pretty
neat even though he still carries a torch for Scheme. You can find
more of his writings, including his paper for the San Jose Perl
conference, at http://www.ccil.org/~esr/.

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.