Ideal for the Perl neophyte,
This review is from: Perl Debugged (Paperback)The ideal reader of this book would be someone who's been exposed to most of Perl and knows about packages, modules and references (the Llama/Alpaca combo, for instance), but who isn't necessarily experienced with other languages. If you are that sort of person, this should be close to the top of your Perl reading list.
There's an abundance of good material to be found here -- yes, there's an entire chapter on working the Perl debugger, but don't let the book's title fool you, it's not just about debugging. There's also advice on code style and layout, common idioms and features of Perl such as the behaviour of $_, autovivification, local, and optional parentheses.
Additionally, there are introductions to logging (in the context of debug flags), unit testing, code coverage, and error handling. Rounding off the book are chapters on benchmarking, profiling and some simple optimisation techniques (e.g. don't shell out to an external program if you can do the task in perl, use pipes and fork instead of writing to a temporary file), a chapter of tips for programmers coming to Perl from Java, shell scripting, C, C++ and Fortran. Finally there's a chapter covering debugging CGI programs.
Throughout, there's also some more philosophical (or touchy-feely) material, with exhortations to being a good citizen of the Republic of Perl and your work environment. If you're a more experienced developer, and you've read the likes of Code Complete and Refactoring, much of this is either obvious or has been given in more detail in other books, which is why I think the less experienced you are, the more you'll get out of it.
If you've been around the block a couple of times, I think you'll find that while there is a lot of ground covered, it's not particular deep. It's good to have issues like unit testing, profiling, benchmarking and logging introduced, but you'll quickly have to look elsewhere for more detailed (not to mention up-to-date) information for use in your own code. If you've read the likes of Effective Perl Programming, Perl Testing and of course, the mighty Perl Best Practices, there's not a lot left to see. However, chapter 8 presents some neat puzzlers, where a seemingly innocuous piece of code is suffering from a missing, misplaced or transposed character, and some useful tips for interpreting the syntax errors are presented.
Overall, this is nicely written in an unfussy, friendly style which assumes the reader is not a complete beginner. Ungrizzled non-veterans of Perl should consider this well worth taking a look at, especially as a companion to Perl Medic.