Order Higher-Order Perl online from Powell's Books
Current Status: The book was published on 8 March 2005. Copies are now available in bookstores in the U.S. and Europe, and from online booksellers. A second printing became available in August 2005.
Higher-Order Perl is about functional programming techniques in Perl. It's about how to write functions that can modify and manufacture other functions.
Why would you want to do that? Because that way your code is more flexible and more reusable. Instead of writing ten similar functions, you write a general pattern or framework that can generate the functions you want; then you generate just the functions you need according to the pattern. The program doesn't need to know in advance which functions are necessary; it can generate them as needed. Instead of writing the complete program yourself, you get the computer to write it for you.
HOP is full of useful and interesting examples that Perl programmers will want to see. Chapter 1 is about writing recursive functions to walk the file system and to process recursively-structured data such as HTML documents. Chapter 2 discusses dispatch tables in the context of reading configuration files. Chapter 4 concludes with an improved replacement for the WWW::SimpleRobot module, with better functionality in one-third the code, and also contains a basic database query system that searches an HTTP log file backwards, delivering the most recent records first. Chapter 6 discusses the frequently asked question of how to generate a list of all the strings that will match a given regex and provides an astonishingly simple solution. Later on, in Chapter 8, I show how to build a parser for regexes and attach it to the string generator. Chapter 9 presents linogram, a complete constraint-based diagram-drawing system.
My contract says that after the book is published I can distribute the complete text from my web site. The content of my book will be available to everyone everywhere for free. Watch this space for updates.
Current Status:I have decided that I want to turn the book into a Wiki. Each small section of the book will be a wiki page. Editing the book text itself will be restricted to a few trusted users, but anyone will be alowed to comment on, correct, or discuss the comments about the book text.
I have installed the MediaWiki 1.5 software and made the changes I need to. I also upgraded hop.perl.plover.com's hardware so it would be able to run MediaWiki at a reasonable speed. I now need to install MediaWiki 1.6 (easy), port my code changes to it (easy), transform the book text to Wiki markup (medium) and import it into the Wiki database (medium).
To help, please subscribe to my volunteers mailing list.
(Last updated 14 October 2005.)
In the meantime, you can use this full-text search to search the book.
For a long time, the provisional title of the book was "Perl Advanced Techniques Handbook". We never planned to use this title; we always planned to change it once we found something better.
mjd-book: I used to send occasional reports of my progress on HOP this mailing list. I have not sent any announcements since HOP was published, but it is possible that I will send some in the future, for example if a translation of the book is published. This list is extremely low volume. It is quite possible that it will never see another message. Complete archive of past messages.
mjd-books: I am working on at least one more book. For announcements about this upcoming book and any other books I might write in the future, subscribe to this list. Subscribers get to see draft chapters, course materials related to my books, and other goodies. This list is low-volume. Complete archive of past messages.
hop-discuss: A public discussion list for HOP-related matters. Complete archive of past messages
hop-discuss-digest: Digest version of hop-discuss. Instead of one message at a time, this list receives the messages in batches, every few days.
hop-volunteer:
Would you like to help me put HOP online? Please read
the archived messages and subscribe here.
To subscribe to any of these lists, send mail to:
Order Higher-Order Perl online from Barnes & Noble
Return to: Universe of Discourse main page | What's new page | Perl Paraphernalia