Stok Footage

Continually experimenting with new ideas and techniques — Reconstructing, Developing, Modernising.

Review of Effective Perl Programming

Title: Effective Perl Programming (Second Edition)
Author: Joseph N. Hall, Joshua A. McAdams, and brian d foy
Publisher: Addison Wesley
Date: 2010
ISBN: 978-0-321-49694-2

(Revised and expanded version of my review on

Effective Perl Programming packs a lot of useful information into a slim and manageable volume – about 425 pages of “meat” in addition to the introduction, other front matter, and back material. There is no “filler” material in the book, which assumes you are already familiar with Perl. The time I have spent reading the book so far has already been handsomely rewarded. All in all the book is well written, accurate, and a delight to read. The authors know their stuff and provide pointers to resources which cover other aspects of Perl well.

The book’s focus on idiomatic Perl sets it apart from most other Perl books. In my experience Perl is a sharp tool, and becoming familiar with its idioms is essential if you want to enjoy cranking out reliable, concise, maintainable code.

Although Perl’s motto may be “There’s More Than One Way To Do It,” the corollary is, “But Most of Them Are Wrong,” or “Some Ways Are Better Than Others.”

The building blocks of the book are 120 items, grouped into thirteen chapters. Each of the items is a relatively short section which ends in a set of things to remember, these items can be used as a cookbook style reference. The first six chapters deal with the basic mechanics of Perl, and the later chapters have a topical focus:

  1. The Basics of Perl
  2. Idiomatic Perl
  3. Regular Expressions
  4. Subroutines
  5. Files and Filehandles
  6. References
  7. CPAN
  8. Unicode
  9. Distributions
  10. Testing
  11. Warnings
  12. Databases
  13. Miscellany

The areas which made this book stand out included:

  • The book doesn’t cover what has already been covered elsewhere, so the material is all fresh and the space is used to investigate topics in reasonable detail.
  • The authors demonstrate a deep understanding of Perl, and have clearly honed their examples and explanations. Well explained areas include: list vs. array, context, local vs. my, Unicode and utf8 handling, and which language constructs are appropriate where. Their experience with Perl in the real world shows in the explanations.
  • The writing and examples are clear and concise. The book’s web site has an errata section which is kept up to date so I could mark up the known errors.
  • Effective Perl Programming revealed some of the features of recent Perl and new modules which I hadn’t noticed or had time to internalize. Damian Conway mentions rehabiting in Perl Best Practices, and this book illuminates some good areas for me to work on.
  • The authors have clearly carefully selected which material to cover, and covered it well. Part of writing idiomatic Perl is to improve the way I think of writing in Perl, and the topics selected by the authors cover about 90% of the things I need to do in my software development using Perl.
  • The book makes effective use of colour in the code examples to highlight the particularly important elements. The quality of the book’s paper and printing as a physical artifact seemed better than most “mass market” technical books I buy these days.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.