Advanced Perl Programming (O'Reilly & Associates, 1997)

  • aka. the "panther book"

The book was published in 1997 and spent some quality time on the Amazon top-50. It has subsequently sold more than 1,20,000 copies and translated into seven languages

The term "advanced' is necessarily latched onto the cursor of time, as Larry Wall once put it. What was "advanced" then is "obvious" now. I declined the opportunity to keep it updated, and Simon Cozens wrote a new book keeping the same cover and title.


Eric Raymond's review in the Linux Journal (also referring to Learning Perl  and Perl Programming):

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.

Reviews on O'Reillly's site

Reviews on Amazon