Channels ▼

Web Development

Perl Core Language

Jack J. Woehr is an independent consultant and team mentor practicing in Colorado. He can be contacted at

Perl Core Language, Second Edition
Steven Holzner
Paraglyph Press, 2004
528 pp., $29.99
ISBN 1932111921

Perl Core Language is part of Paraglyph's "Little Black Book" series, billed as "concise problem solvers." The content of Perl Core Language consists primarily of chapters in two parts. The first part of each chapter is the In Brief section (it might simply have been called "Brief"), a summary of the theme that unifies the chapter. This is followed by Immediate Solutions, topics (often occupying less than a full page), such as "Removing Trailing and Leading Spaces," "Using Array References as Hash References," or covering one of the scores of Perl function calls described by the book.

The book takes you from the basic language up through object Perl, Modules, CGI, XML, and Perl Debugging. The industry ritual of two "on beyond zebra" chapters at the end goes unchallenged: Here the extras are Chapter 20 on counters, guestbooks, e-mailers, and secure scripts; and Chapter 21 on multiuser chat, cookies, and games.

Though it starts with a Chapter on "Essential Perl" covering the boilerplate topics of downloading and installing Perl, making sure the shell interpreter can execute your scripts on any conceivable platform, language basics, and so on, Perl Core Language is not a book for learning Perl (nor for learning XML—you should be well grounded before you tackle Chapter 19, "Perl and XML"). It's a book for those who have learned Perl, and probably umpteen other languages, which explains why they need such a book open on their desk as they dive into a Perl project or merely into a day's coding. The book is the digested manual, often paired with clarifying examples composed by a skilled exigete for application on the fly. Hundreds of useful (albeit shallow) headings fit into a book under the application of such a formula, but the concision comes at a price. Holzner gets into the rhythm of his formula to the extent that, occasionally, he appears not to have parsed what he was writing for sense, as in the sprintf article:

%e - A floating-point number, in scientific notation
%E - Like %e, but using an uppercase E.
%f - A floating-point number, in fixed decimal notation.
%g - A floating-point number, in %e or %f notation
%G - Like %g, but with an uppercase G

In case you missed the error, read the %G line again. %G most definitely does not produce an "uppercase G" in its output.

Perl Core Language is another one of these books whose blurbs reference Perl 6.0 ("[C]overs the current well as highlighting critical features of the upcoming 6.0 version"). Anyone following the developers' list for Perl 6 ([email protected] or in entertaining the weekly summary at a/2005/01/p6pdigest/20050118.html) knows that if you want to know about Perl 6, you start at If you don't understand what you read there, you don't really want to know right now, anyway. In any case, for the target reader of Perl Core Language, the contours of Perl 6 can be most usefully summed up by the Magic 8-Ball: "Ask again later."

Certain other literary aspects of the work rub this reviewer the wrong way. First of all, prolific author Steven Holzner is an old hand at tech writing. Amazon offers 96 (!) of his books. Yet, oddly enough, none of these previous authorships are listed in this book under the "About the Author" heading. Second, we're sure Holzner wouldn't program a new object class merely to encapsulate one-to-one the capabilities of an extant class. Then why are the "Acknowledgments" solely aimed at the book's production team? Shouldn't the roles played by these individuals simply appear de rigeur inserted into the book by the publisher as "Credits" without reference to the author's wishes? Normative these days in tech book "Acknowledgments" are frank comments like, "I could never have done it without my wife Hroswitha, who entered therapy so she could handle my locking myself in my basement office for two years to write this book for a $7000 advance against nonexistent royalties." Now, if Holzner had offered praise to these individuals for doing their jobs skillfully despite their being woefully underpaid and abused by seven layers of lackluster management or something of the sort, there would be the kind of value added above and beyond simple credits that would justify calling it an "Acknowledgment."

The web site turns out to be a tumble-down shed since the new barn got raised: http:// There, you'll find the link to Perl Core Language pointing to Hardly an intuitive URL, but consolidation marches onward in tech book publishing as in all other industries. Anyway, once arrived at the cited URL, you will find none of the usual amenities: no table of contents, no sample chapter, no downloadable example code. Everything about this effort bespeaks itself of hurry, which is hardly unusual hereabouts, but rush reaches an apogee in the present case wherein the same author publishes several other books in the course of the same 12 months. Steven Holzner clearly understands Perl, has impressive authorship credits, and is approaching rough parity with Herbert Schildt, another workhorse of this industry. If only Holzner, at the peak of his form, had time to stop and smell the roses!


Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.