Edinburgh Castle
Computer Science & Perl Programming
AuthorsJon Orwant (editor)
DateNovember 2002
ReviewerRory Macdonald
Cover image for Computer Science & Perl Programming

This book, the first of a three volume series of collected articles from The Perl Journal, features 70 well crafted articles which should be within reach of every perl monger's toilet.

While I doubt that the original remit for contributions to Jon Orwant's magazine was "must be digestable in one sitting", I've would say that this book, more than any other perl text I've read, posseses a truly 'throne-worthy' combination of being informative and useful with sufficient diversity to accommodate most enquiring minds. While the articles aren't side splitters, they're not as dry and unengaging as the title may have some imagine.

Following Mark Jason Dominus' entertaining foreward (Hello Mark!), Jon Orwant gets things rolling with a potted history of how 'The Perl Journal' came to be, and the growing pains both it and the editor went through until the magazine ceased to exist as a standalone periodical.

Jon groups the articles for this first volume into Beginner Concepts, Regular Expressions, Computer Science, Software Development, Networking, Databases, and Internals. A real meaty spread of topics covering application and theory normally found in cookbooks. For example, Jeffrey Friedel shares some of his in-house regex experiences at Yahoo! while Mark Jason Dominus illustrates regex fundamentals in a from-scratch generation of a Regex.pm module.

Helpfully, where relevant, the editor includes footnotes of any notable change in circumstances since the original publication of the article. This being a dead-tree instance of the articles, the footnotes are of course stuck in time. For example, while there is a footnote regarding 'cons' having been revamped into 'scons', there was of course no mention that development of 'cons' appeared to have stalled in 2001.

Rather than provide per-article feedback, let me say that there is a comfortable range of article lengths, running from 4 to 16 pages, and that the writing of each of the 41 contributing authors offer a well weighted delivery of their chosen topic.


If, instead of sourcing a variety of full-blown dedicated texts covering topics such as regex or DBI, you are looking for a single binding of a scattering of articles to dip your toe into various topics, then I would readily recommend this perl book.

Table of contents

Computer Science & Perl Programming
Part 1. Beginner Concepts
  * All About Arrays
  * Perfect Programming
  * Precendence
  * The Birth of a One Liner
  * Comparators, Sorting, and Hashes
  * What Is Truth?
  * Using Object-Oriented Modules
  * Unreal Numbers
  * CryptoContext
  * References
  * Perl Heresies
Part 2. Regular Expressions
  * Understanding Regular Expressions, Part I
  * Understanding Regular Expressions, Part II
  * Understanding Regular Expressions, Part III
  * Nibbling Strings
  * How Regexes Work
Part 3. Computer Science
  * Infinite Lists
  * Compression
  * Memoization
  * Parsing
  * Trees and Game Trees
  * B-Trees
  * Making Life and Death Decisions with Perl
  * Information Retrieval
  * Randomness
  * Random Number Generators and XS
Part 4. Programming Techniques
  * Suffering from Buffering
  * Scoping
  * Seven Useful Uses of Local
  * Parsing Command-Line Options
  * Building a Better Hash with tie
  * Source Filters
  * Overloading
  * Building Objects Out of Arrays
  * Hiding Objects with Closures
  * Multiple Dispatch in Perl
Part 5. Software Development
  * Using Other Languages from Perl
  * SWIG
  * Benchmarking
  * Building Software with Cons
  * MakeMaker
  * Autoloading Perl Code
  * Debugging and Devel::
Part 6. Networking
  * Email with Attachments
  * Sending Mail Without sendmail
  * Filtering Mail
  * Net::Telnet
  * Microsoft Office
  * Client-Server Applications
  * Managing Streaming Audio
  * A 74-Line IP Telephone
  * Controlling Modems
  * Using Usenet from Perl
  * Transferring Files with FTP
  * Spidering an FTP Site
  * DNS Updates with Perl
Part 7. Databases
  * DBI
  * Using DBI with Microsoft Access
  * DBI Caveats
  * Beyond Hardcoded Database Applications with DBIx::Recordset
  * Win32::ODBC
  * Net::LDAP
  * Wed Databases the Genome Project Way
  * Spreadsheet::WriteExcel
Part 8. Internals
  * How to Improve Perl
  * Components of the Perl Distribution
  * Basic Perl Anatomy
  * Lexical Analysis
  * Debugging Perl Programming with -D
  * Microperl
About the Authors
faded separator

Page maintained via github.com/edinburgh-pm/edinburgh.pm