by: Joseph N. Hall,Joshua A. McAdams,brian d foy
(2nd Edition) (Effective Software Development Series)
Effective Perl Programming packs a lot of useful information into a slim and manageable volume. There is no "filler" material in the book, which assumes you are already familiar with Perl. I have developed Perl software for more than fifteen years, and here are the aspects of Effective Perl Programming which struck me particularly: 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 focus on idiomatic Perl - the authors say: "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 book illustrates how to write idiomatic Perl from the choice of language construct through to testing code and using CPAN (the Comprehensive Perl Archive) effectively. 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. Sometimes it is time to unlearn old habits and get up to date! 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 uses colour in the code examples to highlight the important bits. The quality of the book as a physical artifact seemed better than most "mass market" technical books I buy these days. The time I spent reading the book 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.