One of the most dangerous books I've ever even partially read is MJD's Higher Order Perl. In particular, its description of subroutine currying -- that is, building more specific functions out of more general purpose ones -- is a pattern I find incredibly useful.
The other day I found myself writing a number of routines that were surprisingly similar... kinda. They all implemented a common pattern, but across routines that were rather... different. I found myself wistfully longing for the familiar pattern of currying, and then realized -- I'm working in PERL, DAMNIT.
This is part of recent work of
Test::Moose::More to use subtests where they make sense. Here I was able to
curry one function --
_validate_subtest_wrapper() -- by passing it a
reference to another function, that it then invokes.
Excellent. Life is easier, as it should be.