I have been interested in higher-order Perl ever since the book of that
title was released. While I've not read it, and I only intermittently
follow the mailing list, what higher-order Perl represents fascinates me.
That said, I'm a little disappointed that I opted for Mark Jason Dominus's
tutorial on higher-order Perl rather than, say, Damian Conway's tutorial
on Vim. Not to say that I found Mark uninteresting or uninformative.
Quite the opposite, in fact. Unfortunately, most of the tutorial was
below my skill level.
Having earned a degree in computer science, topics such as caching,
memoization, iterators, and lexers are familiar to me. What I did find
interesting, however, was Mark's application of Perl to these concepts.
Here is a language I have been using for over ten years. I consider
myself an expert at using it. Even so, there is always some new trick or
some new way of looking at things that I can learn and then apply to my
own programs.
Coding in higher-order Perl, as it
were, is coding with an entirely new set of ideas about how to program.
The underlying theme of this tutorial—aside from closures, closures,
closures, baked beans, and closures—was the use of open systems as
building blocks. By starting small and simple, the subroutines are easy
to design. By staying open and flexible, the subroutines can be used like
Lego blocks to construct even the most massively complex system.