Higher-Order Parsing Techniques for Perl
One of Perl's most valuable (but least-used) features is the ability to use functions as if they were data: to pass functions as arguments to other functions, and to write functions that construct and return new functions on request. One exciting application of this feature is in the development of parser programs. We can write a few simple parsers, and then a few functions for assembling parsers into more complex parsers. From this tiny code base, about 25 lines, the parsers snowball to programs that perform dazzlingly complex parsing operations.