Channels ▼

Web Development

Advanced Perl Programming, 2nd Edition

January 2006: Advanced Perl Programming, 2nd Edition

Paul Barry lectures at the Institute of Technology, Carlow in Ireland. He is the author of two textbooks that use Perl and can be contacted at

Advanced Perl Programming, 2nd Edition
by Simon Cozens
Published by O'Reilly Media, Inc., June 2005.
ISBN: 0-596-00456-7

My list of things to look at in the Perl world is forever growing. A web or print article catches my eye and I make a mental note to take a closer look at whatever interesting technology is being discussed. Of course, I never do, as there's always something else that needs doing, so my list seems to grow and grow. Until recently, that is. Thanks to the publication of the second edition of O'Reilly's "Advanced Perl Programming," by Simon Cozens, I've been able to scrub a good few items off my list, including stuff like templating systems, the Parse::RecDescent module, POE and Unicode.

Simon Cozens is well known in the Perl community and in the pages of TPJ. It appears that another famous Perl guru, Nathan Torkington, is to be blamed for twisting Simon's very busy arm to do the second edition of one of Perl's oldest texts. And it's very much a rewrite, not a revamp. Appearing just under eight years after the original text, the second edition is a very modern tour of the advanced features of Perl and a detailed exploration of parts of the single largest reason most of us program in the language: the CPAN. In addition to covering those topics from my list, there's material on testing techniques, natural language processing, Inline extensions, persistent databases & object technologies, introspection and having "advanced fun" with Perl (which includes Simon's take on obfuscation contests, JAPH, golf and poetry).

In just 270 pages, Simon takes the reader on a tour of what he feels you need to know to become an advanced programmer of Perl. And those 270 pages are packed full of well written and thoroughly researched material. However—for me—things got off to a shaky start as I found Chapter 1 on "Advanced Techniques" heavy going. By the time I got to page 7, my brain was telling me that it didn't like what it was seeing. What made the first chapter daunting was that the material presented wasn't going in on a first reading and at more than one point Simon stressed that the material in Chapter 1 was what "everything else was built on." So, I worried my reading would grind to a halt while I struggled through the early material. Then it struck me. This is not a book that you read, it's a book that you study. Merely reading Simon's book is not enough. This book needs to be studied, both closely and carefully.

With my changed mindset installed, I was able to work trough the early material successfully, and I'm pleased to report that the rest of the book can be studied—for the most part—in isolation from the first chapter's advanced material. In fact, I'd suggest that each of the chapters can pretty much stand on their own as a separate entity, as each presents a single topic area and then covers the relevant material in some detail. Throughout, there's an emphasis on referring to and quoting code from a selection of the best CPAN modules that relate to the matter at hand. What binds the book's chapters together is Simon's stated goal of covering the advanced techniques that are at work within the examples cited, as well as his commentary on what does and does not work within a particular application setting.

Is this a book every Perl programmer should work through? Eventually, yes. Certainly, if you are a CPAN module author, this is a book you need as it's coverage of the best that the CPAN has to offer is a very worthwhile read. If you are looking to take your knowledge of Perl to a higher level, then this is also a book for you. Just be prepared to find some of the material heavy going, especially Chapter 1. Chapter 10, on having fun with Perl, will probably blow your mind, too. If you are new to the language, give this book a miss until you are comfortable with the material in Programming Perl.

So, has the second edition of Advanced Perl Programming magically turned me into an advanced programmer of Perl? Not yet. However, it has told me what I need to do and pointed me firmly in the right direction. It is a book that I intend to refer to often.


Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.