Intermediate Perl by Schwartz/Foy/Phoenix; O'Reilly Media

October
28th,
2012

After having learned the basics in Learning Perl ("Llama book"), Intermediate Perl takes you to the next level. It is aimed at doing more serious development work (programs of over 1000 lines of code). Hence it introduces the more advanced concepts as complex data structures, references, packages and OOP.

Structure

Disclaimer: I received a copy from O'Reilly for review.

This book covers a lot in its 21 chapters. It serves well a classroom or self-paced learning discipline with equally length chapters of approximately one hour reading time and exercises that help you practice the newly introduced concepts.

I like the introductional chapters, getting into CPAN, intermediate foundations (grep, map, eval) and references. Good prep work to start tackling more complex problems. Up until chapter 10 it expands on references concepts which was a really good read. At chapter 11 there is a turning point into software development: how to write bigger and more maintainable programs in Perl. How to create your own Perl distribution, Perl's OOP design and (Advanced) Testing, ending with Moose and contributing to CPAN. At this point, when using all these concepts in your daily work, you are probably becoming a master. The next logical step is to then read Mastering Perl, the 3rd O'Reilly Perl learning series book or the Perl bible, Programming Perl.

OOP Perl

I found this the most complex part of the book, not as clear as the other topics (ch 1-11 and Testing). I am not sure this is inherent to Perl's design of OOP or the way Intermediate Perl presented the content and/or its samples. I probably have to start using OOP more in my work, and I am going to read Damian Conwey's OOP title on the subject which seems a good place to learn OOP Perl in depth.

Overall opinion

I can recommend Intermediate Perl as a logical step after the Llama. If you want to build larger, more powerful/ robust programs, this gives you a jumpstart. You might as me need more material and practice on object oriented Perl but that is fine, this is still a very useful reference that brings together fundamental intermediate to advanced Perl techniques.

If you are serious about a career in Perl development this book should be on your shelf. For simple scripting needs it might be overkill, but even then you will need to pass a reference around form time to time, re-use software from CPAN, etc. Apart from that, you will learn better, faster, and more efficient coding practices in Perl from this book.