Book Reviews

The following book reviews are the copyright of their respective authors and no part should be reproduced without the express permission of the author. Publishers and Authors of the books reviewed may reproduce the whole or extracts of a review for their book. To request copyright permission please email

All the reviews herein are the opinions of the reviewer and are not necessarily the views of Birmingham Perl Mongers and its members. If you feel a review or comment has been made in error, please contact to rectify the situation.

Perl Books

Static Link:

Computer Science and Perl Programming
Title:Computer Science and Perl Programming
Publisher:O'Reilly Media
Reviewer:Kevin Taylor

Please note this review has previously been published online, and appears here courtesy of it's author and Northants LUG

I was looking forward to getting this book, since I first saw it announced some time ago. The Perl Journal is one of the things I have always been interested in, but could never really justify getting (having long since used up my quota of magazine subscriptions), so when I saw this announced as 'the best of the Perl Journal' how could I resist?

Needless to say, this is a great source of interesting stuff. Just browsing the contents and seeing the list of topics covered is quite amazing. Due to the shear size of this book, I am still reading it right now, but I can say that what I have read so far is good, and I certainly plan to continue to dip in and out as the various topics take my fancy.

What is covered? Well, the book is split into the following main parts:

  • 1 - Beginner Concepts
  • 2 - Regular Expressions
  • 3 - Computer Science
  • 4 - Programming Techniques
  • 5 - Software Development
  • 6 - Networking
  • 7 - Databases
  • 8 - Internals

After a forward and preface, (by the way, this book is, "by turns, brilliant, witty and profound" - the forward tells me to say so :), there is a brief introductory chapter covering the history of TPJ and a comment on what is good with Perl (touching on some of the subjects included in the book).

1 - Beginner Concepts

This part contains articles about the basics of Perl itself. The title is a bit misleading though - there is plenty here for beginners, but also much for more experienced programmers. Think you know all about arrays? Well, read chapter 2 and think again! There are well written articles about most of the core concepts behind Perl. Most are quite short, so easy to dip into. For example, 'Crypto Context' is just 5 pages long, but it makes you consider a function call in a completely new light!.

2 - Regular Expressions

4 of these articles are written by the Author of 'Mastering Regular Expressions', so I had come across much of this information elsewhere (having reviewed this book too). The last considers how to build your own regex engine. These articles cover what you should know about how regular expressions actually work, in order to get the best from them.

3 - Computer Science

This section contains some fascinating articles about various 'typical computer science' type subjects (compression, lists, parsing, trees, etc).

For me, the 2 articles about 'infinite lists' and 'memoization' were particularly interesting, being articles that really exploit features that are 'typically Perl' in an interesting way. I have to say that it took me one or two goes to sort out some of it, but that was mostly because I was reading with no Perl interpreter in front of me to tinker at the same time! Despite this, I was quite inspired by the ideas of Mark Jason Dominus (and I'm quite looking forward to seeing what his upcoming book is all about ...).

4 - Programming Techniques

This covers 10 things that people often find themselves considering when using Perl. Starting off with a discussion of buffering, it moves through scoping, use of local, etc, up to some curious ways to use objects with Perl. Again, there is something here for even an experienced Perl programmer.

5 - Software Development

This covers various aspects related to the mechanics of writing Perl programs, including using other languages from Perl, benchmarking, building/configuring your code, autoloading Perl modules and debugging using the Devel:: modules.

6 - Networking

This is a discussion of diverse topics related to networking. Includes things like doing SMTP, MIME, DNS, telnet, NNTP and FTP (cue Graham Barr) as well as a few oddities such as 'controlling modems' (using Win32::SerialPort) and a couple of gems from Lincoln D. Stein.

Having used many of the networking modules available via CPAN, its great to see names I recognise behind these articles.

7 - Databases

I haven't read this section in detail (I don't really do databases). It covers things like the basic DBI, as well as using it to interface to MS Access (including comparing it to Win32::ODBC). There is then an article about Net::LDAP, an example of how the 'Human Genome Project' uses web-enabled databases, finishing with an article about accessing Excel from Perl.

8 - Internals

Again, this is a section I haven't yet read, but scanning over the list of included articles, I am quite sure that I will make time to get around to it. This includes more advanced topics, detailing what the different bits of the distribution are about, what happens within Perl itself.


A collection in a book like this is only as good as its constituent authors. Based on what I've read so far, this is all quality stuff. There is a very good mix of articles, with quite am impressive line up of authors. I would say that there is something for everyone here. The preface states that this is the first of 3 books containing articles from TPJ. Based on my experience of this book, I am definitely looking forward to reading the others.

- Kevin - 6th January 2003