Effective Perl Programming is not an introduction to the language or a reference book, but a collection of tips and insights, in the form of some sixty "items", largely self-contained. It assumes both a basic knowledge of Perl and a general understanding of programming. Hall explains some of the trickier and more complex features of the language and offers advice on choosing between the many ways Perl offers to do things, so as to improve efficiency and clarity. Some of his material falls into the realm of "neat tricks", but some of it provides sophisticated insights into the language or touches on general issues of computer science (for example the differences between "procedural" regular expressions and lex style finite automata). Effective Perl Programming is divided into sections on "the basics", idiomatic Perl, regular expressions, subroutines, references, debugging, using and writing packages and modules, object-oriented programming, and a closing miscellany. The section on "subroutines", to take one example, contains an item on the differences between my and local variables, one on closures, and several on parameter passing and argument handling.
Effective Perl Programming has revived my interest in the language and brought me up to date on its latest features. But it was, more than anything else, a simple pleasure to browse through — it is one of the most enjoyable books on a programming language I have read. Those who don't want to swallow a whole book on Perl may find individual items of Effective Perl Programming just the right size for digestion. Regular Perl programmers should find it makes a solid meal.