I ordered Higher-Order Perl: Transforming Programs with Programs a while back after reading some glowing reviews. I recently rediscovered it in my stack of “things to read” and once I started reading, I could hardly stop. And I couldn’t agree more with the great reviews.

This is one of those books that makes you look at software developement — and specifically Perl programming — from an entirely new perspective. This is not a book for the Perl novice and may not be suitable for the casual scripter, but for anyone who’s spent some serious time in Perl and enjoys the theoretical aspects of Computer Science, this book is a gem.

While I had discovered and applies some of the techniques described in this book (closures and caching, for example) in the past, the book actually explains in detail how and why they work. And they opened my eyes to other topicst that I’d use elsewhere, but not in Perl (for example iterators).