REVIEW - The Complete PERL Training Course


The Complete PERL Training Course


Ellie Quigly



Prentice Hall Ptr (1998)




Richard Blundell


April 1999



My overall impression of this book was disappointing. There is a good idea here - Perl scripts are often short, so what better way to teach Perl than with numerous concise examples, each one explaining one feature, outlining syntax, or demonstrating one technique. The result failed to impress me in a number of ways:

For each example, the script is given, followed by the output produced and a line-by-line explanation of the script. I found the format and layout of the text poor. Some examples span several pages and are shown in a large sans- serif font. These examples are sometimes separated only by a few lines of explanatory reference material in a smaller serif font. It is consequently difficult to read or follow in places and hard to find your way out of lengthy sections of examples and back into the text. Important tables are printed in a minuscule font and are therefore very hard to find in the text. It is also sometimes unclear exactly what aspect of the current topic is being demonstrated when more than one example is presented and in a number of cases I found no explanation for the particular line of script I was analysing.

The book also does not make a good reference text - the material covered does not seem very complete or laid out for quick referral. The explanatory material is full of loose definitions; inconsistently-documented return values; confusion between '0', an empty string and an undefined scalar; and terse unhelpful function descriptions such as 'the sort function sorts and returns a sorted array.' Some functions are part-documented in different places, making each part incomplete and the full details hard to locate. Some examples seem poorly chosen. For example at one point it is stated that the 'keys,' 'values' and 'each' functions extract items from a hash in a 'random order,' yet all the examples in that section show the data being printed out in preciselythe order entered, so the seemingly 'random' storage is not emphasised.

This book is a second edition, yet I found a number of typos in the example code and the output (which was sometimes badly corrupted).

Although a book like this is not expected to teach OO, the 'backgrounder' presented was naive to say the least and the examples confused. Inheritance is compared to procedural programming and the principal example used to demonstrate inheritance is a class called 'Child' that derives from a class called 'Parent,' which itself derives from a class called 'Grandparent.' The implication of this, as far as I can see, is that a 'Child' is-a 'Parent', that everything a Grandparent can do a Child can do as well and so on, suggesting confusion in the mind of the author on OO matters.

The book comes with a multimedia CD. This seems to add little to the book. The material is basically a subset of the text from the book, with the added disadvantage of only being able to see a few lines at a time through the small usable area of the very small window (some examples consist of five consecutive screens of code). Examples and tables are a little clearer than in the book, sometimes popping up in separate windows, but it is generally hard to use and difficult to navigate around and as the user you have little grasp of where you are. There are very quick quizzes (a couple of questions) at the end of each chapter or section - I think it would have added more value if more of these had been included to test understanding of each point as you went along. The single element the CD adds to the book, I found, is the ability to run the example scripts and to see the output before your eyes. Despite the foregoing comments, this does add a lot if you do not have easy access to a Perl interpreter.

In summary: despite having promise, there are better Perl tutorials out there and I think rehashing a book to make a CBT text is not the way to go.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept All Cookies" you agree ACCU can store cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

By clicking "Share IP Address" you agree ACCU can forward your IP address to third-party sites to enhance the information presented on the site, and that these sites may store cookies on your device.