Jon Orwant's vast experience with Perl is reflected in the book.
Author: Jon Orwant
Publisher: The Waite Group Press, Inc. 1996 (a division of SAMS Publishing)
Price: $49.99 US, $70.95 Canadian
ISBN: 1-57169-064-6
Reviewer: Michael S. Hines
Whether you buy books by the pound (2 pounds), by the shelf inch (1 7/8 inch), for the included materials, for a unique approach to learning or for the content, the PERL 5 Interactive Course will meet your needs:
Each copy includes a CD-ROM of tools and programs.
It integrates your learning with Internet testing and assessment and provides an extensive reference to Internet resources for PERL programming.
It provides wide coverage of the subject from getting started to advanced topics such as calling C from Perl and using Perl with C.
Jon Orwant is a Motorola Fellow at the MIT Media Laboratory and is the Editor-in-Chief of The Perl Journal. His vast experience with Perl is reflected in the book.
The practical extraction and report language (Perl) was designed by Larry Wall using concepts and constructs from sed, awk, C and Unix shell tools.
PERL 5 Interactive Course is one of eight books from Waite Group providing interactive web-based learning assessment (the other titles are: HTML 3, C++, Visual Basic Scripting Edition, Java, Visual Basic 5, JavaScript and Office 97) and on-line resources through the eZone at http://www.waite.com/ezone/. Buying the book gives you free access to The PERL 5 Interactive Course on the eZone.
The book's fourteen chapters and eleven Appendices, with reference material, teach Perl programming using Perl 5.
Each chapter contains eight training sessions with reading material and examples on the topic, a quiz and graded exercises (easy, medium, moderate and difficult) to reinforce the learning process. The chapters are:
Meeting Perl: The Basics
Pattern Matching: Regular Expressions
The Outside World: Files and Filehandles
Divide and Conquer: Subroutines
Mincing Words: Hashes
Looks are Everything: Formats
hOOPla: Object-Oriented Programming
Browsing the Libraries: Modules
Pushing the Envelope: Process Management
When Good Programs Go Bad: Debugging
Lock and Key: Security and Databases
Surfing on Oysters: Perl and the World Wide Web
Spreading the Word: Networking
Tower of Babel: Perl and Other Languages
The pace of each chapter is aggressive. For example, Session 1 of Chapter 1 begins with the classical programming assignment—“Hello World”, and by Session 8 of Chapter 1 the subjects of scalars, conditional statements, loops and arrays have already been covered. (A minor editing error—the legends for the figures in Chapter 1 are off by two—the caption for Figure 1-1 is more appropriate for Figure 1-3, for example.)
PERL 5 Interactive Course contains a wealth of reference information in the appendices. The appendices are:
A. Quiz Answers
B. Internet Resources
C. The ASCII Character Set
D. Unix Signals (incorrectly identified as Symbols in the Table of Contents)
E. File Tests
F. Debugger Commands
G. Operator Precedence
H. Command-Line Flags
I. Perl Special Variables
J. Regular Expressions
K. A Summary of Functions
(A minor editing error—all references in the text to appendices is off by one—references to Appendix I actually refers to Appendix J, for example.)
The CD-ROM contains all the scripts for the projects developed in the book (over 400 programs) as well as the following tools:
Perl 5 binaries or source for Unix, Windows 95 / Windows NT and DOS/Windows 3.x
Contents of the Comprehensive Perl Archive Network (CPAN)—tools, scripts, resources and other material. (Note: may not be readable by DOS/Win3x systems.)
Netmanage Chameleon Sampler (free for 30 days, thereafter the copy must be registered for $50 US—you must make arrangements with an ISP for Internet access). The book fails to mention that you only need Netmanage Chameleon with DOS/Win3x, since all other operating systems (OS) come with Internet Access Tools as an integral part of the OS.
Sample of eZone content available on the Web (you'll need Netscape 2.0 or Microsoft Explorer 3.0 or later to view).
There is a section before Chapter 1 on how to install the tools and set up your system to effectively use the PERL 5 Interactive Course learning material. There is a section for each major OS (Unix, Win95/WinNT and DOS/Win3x). I tested the CD-ROM on a Windows NT 4.0 Workstation system using the FAT16 file system. The INSTALL.BAT program provided failed to complete the install properly. I was able to manually install the CD-ROM on my system performing the following steps:
I created a directory named “perl” in my root directory.
I created a directory named “bin” in the perl directory.
I copied the file from the CD-ROM directory /perl5/win95-nt/091-i86.zip to my root directory, and then installed it with the command PKUNZIP -d C:\perl (to preserve the zipped directory structure).
I copied the file from the CD-ROM directory /perl5/win95-nt/nt5091sr.zip to my root directory, and then installed it with the command PKUNZIP -d C:\perl.
I copied the file from the CD-ROM directory /perl5/win95-nt/ntperl5.091.ppc.zip to my root directory, and then installed it with the command PKUNZIP -d to C:\ (perl is already in the path).
I copied the programs perl.exe and perlglob.exe from c:\perl\5.001\src\ntt to the c:\perl\bin directory.
I updated my path to include the c:\perl\bin path for the Perl program and added a new environment variable, PERL5LIB=c:\perl\5.001\lib, to pick up the “require” library files.
Perl comes with a test script (c:\perl\5.001\src\ntt est.bat) to assure that the install was performed properly and the Perl interpreter is functioning properly. I found that this script did not execute properly as installed, but with the skills I learned from the PERL 5 Interactive Course, I was able to make the script work properly and check out the install. The test routine is not documented, but there is a verbose option (-v) which produces very detailed output during the testing phase (learned this from reading the code).
The on-line eZone resources (http://www.waite.com/ezone/) guide you through the registration process (Initiate icon), course enrollment (Learn icon), monitor course progress (Chapter and Session tests, and progress tracking on exams) and award final Certificate of Completion. Registration authentication is done by entering a particular word from a particular page of the book. The on-line quiz asks the same questions included in the book at the end of each session—the advantage of on-line access is automated scoring and progress tracking. The on-line scoring must be used to obtain the Certificate of Completion. The eZone also provides access to a Mentor area for your course, where you can get personal help (Mentor icon) through existing Frequently Asked Questions (FAQs) or by posting your question. In addition the eZone provides a Tools and Resources section (Chill icon) for your course. The tools and resources available are:
a mailing list for the course
a reader newsletter
resources on the subject matter
I did access and print the readers' newsletters, The eZone Newsletter, for February (14 pages), March (16 pages) and April (15 pages) 1997. The newsletters keep you informed of developments on the eZone, new courses and provide a summary of key discussions from the mailing lists. The April 1997 ezone Newsletter reports that these courses are now available for Continuing Education Units (CEUs) through Marquette University (http://www.mu.edu/).
The web site also includes the Perl 5.0 eZone Club House which archives past mail on the mailing lists and makes it available for searching and access. A few of the vast Perl resources linked from this page that I checked out were: The Perl Language, Index of CPAN (the Comprehensive Perl Archive Network), Perl 5 WWW page—Perl 5 Information, Announcements and Discussion and the HTML version of Rex Swain's Perl 5 Reference Guide (23 pages).
Overall, I would rate this book as a best buy—the comprehensive coverage of the uses of Perl in this one volume would make this a frequently used desk reference. I have seen similar material, but it has been in several different books that address particular applications of Perl. This book provides a wide assortment of applications of Perl in one place.