Higher Order Perl by Mark Jason Dominus

This would have been a better book were I not to have read his blog. MJD re-uses code a bunch, while I can't fault him, it makes reading less interesting as you already know what he'll show next. It also doesn't help that MJD covers the basics of higher order functions in perl5 through a tour of the CPAN modules he wrote.

Essentially, we can use higher-order functions in perl5 to do a Big Thing: lazy evaluation (useful for reading infinite things one at a time instead of into memory all at once). Additionally, we get cool stuff like additional flexibility like callbacks and the encapsulated local scopes of routines. When Eric S Raymond talks about learning LISP, he means these ideas (although more than just these, LISP has a bunch of power).

The book has a bunch of entertainment value as you can pick apart MJD's code that has some of his Red Flags. Other than that, I found it a bit dry, but still worth it for the concept work-out.