Foreword

Mark Jason Dominus

It’s flattering that Jon Orwant invited me to write the foreword for this book. After all, the title is “Computer Science and Perl Programming,” and that pretty much covers it all: “Programming” is anything with any practical relevance, and “Computer Science” neatly includes everything else. You folks haven’t seen the Table of Contents for the second and third Best of TPJ books yet, but I have. Take my word for it, they’re concerned with “Computer Science and Programming” also.

Why did I get this job? Partly because I’ve written more articles for TPJ than anyone else, unless you count Chris Nandor’s “Perl News” columns. But I think it’s also because I got a reputation for writing articles about “Computer Science and Programming,” at least as much as anyone except perhaps Damian Conway. And Damian’s too busy to write forewords, whereas I’m unemployed.

Perhaps I should say something about what you’ll find in this book. The theory is that the casual browser standing in the bookstore might flip to the foreword to find out what the book is about. It’s a rotten theory, because hardly anyone reads the foreword even after they’ve bought the book. More likely, you are a reviewer, hoping for some guidance about what to say in the review. Hello, reviewer! I am happy to assist.

This book is indeed the “Best of the Perl Journal,” biased though my opinion might be by the inclusion of ten of my own articles. It does not suffer from the usual flaw of the anthology, which is that the best you can hope for is that more than half of the articles are above average. On the contrary, it is by turns brilliant, witty, and profound. (Please be sure to say so in the review, and be sure that nothing could ever induce me to exaggerate the merits of this volume. No, not even the hope of an increased royalty.)

The book begins, aptly enough, with a selection of articles for beginners. (Jon used to complain that not enough people wanted to write these: “All the clueful writers want to write about stuff that displays their cluefulness,” he once told me.) The following section is about regexes, and the notable feature is the series of articles by Jeffrey Friedl on understanding regular expressions. These came along very early in the magazine’s history, and were a major contributor to its success, since they were important articles by a Famous Person.

The third section is the “Computer Science” section. Most of the articles in that section turn out to be more practical than you would think—Perl programmers have a wonderful way of making everything useful and of cannibalizing the most abstruse theory. I suppose cannibalization becomes a habit after a while.

Section 4 is titled “Perl Programming Techniques,” a mixed bag of subsystems (source filters and operator overloading), alternative approaches to OOP (using arrays or closures instead of hashes), and miscellany (my attempt to summarize Perl’s grotesque namespace semantics, which migrated here from the “Beginners” section, and the article I wrote as a followup when the tech editors complained about my advice in the first article.) Section 5 is another mixed bag, this one loosely about tools that support development: benchmarking and configuration utilities, for example.

Sections 6, 7, and 8, on networking, databases and internals, respectively, are more homogeneous. Note that the “Networking” section covers almost every important network application except the Web; those articles will be in the second Best of the Perl Journal book, title Web, Graphics & Perl/Tk. The section on databases includes an early article on Perl’s ubiquitous DBI. The “Internals” section collects the excellent Guts series by Chip Salzenberg.

All together, there are 71 of the best articles I can remember from the magazine. The only important omission is that there’s no article by Larry Wall; for that you’ll have to wait until the third book.

Now a personal note: In revising my articles for this book, I built a little tool to compute the word-by-word differences between my own master copies and the versions Jon Orwant provided that were to go into the book. I didn’t expect many changes, because Jon had told me in the past that my articles required very little editing. I always believed that my articles went into the magazine almost exactly as I had written them. But when I saw the results of the automatic comparison, I was rather dismayed. I understood at last how often Jon had tightened my phrasing, cleaned up my rhetoric, and eradicated my verbal tics. (The original draft of this foreword began with the words “It’s pretty flattering;” if it begins with anything else now, you will know that Jon has picked up after me again.) Not only did he do this with such a light touch that I was unaware of it until now, but he was willing to spare my vanity and let me take the credit for his work. So there you have it: Jon Orwant is not only a fine writer and an acute editor, but also a kind, kind man. He is the author of only one of the articles here, but it’s nevertheless his book more than anyone else’s.

Please enjoy the fruits of Jon’s work as much as I have.

Get Computer Science & Perl Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.