Learning Perl, 5th Edition

Making Easy Things Easy & Hard Things Possible

Target Audience

"Programmers wishing to learn Perl"

A revised sixth edition was released in June 2011 and is assumed to be more upto date.

The book assumes you have done some computer programming, for example c/c++ or shell/awk/sed. If you have never done any programming at all, this book does not attempt to teach the fundamentals of computer programming, however it should still be usable with extra patience.

The book assumes you have access to a computer that has Perl installed and know how to use a programmer's editor or IDE. Though many of the examples and the text assumes a Unix like operating system (Unix, Linux or Mac OSX) the example will mostly work on Windows system without modification.

This book is not intended for an isolated absolute beginner, it is intended as a course book or for a programmer wishing to cross train.

The preface suggest that the book be thought of as 30-45 hour introduction to the language, it does not cover the more advanced language features.

The book is appropriate for any modern version of Perl, 5.8.x or later is advised, the book does cover features found in the 5.10.x and later versions but they are not essential for the reader, however where appropriate they are explained.

Book Structure

The book is made up of one introductory chapter and 16 main chapters. Each main chapter is a self-contained topic which ends with a questions section. At the end of the book there are two appendices, one containing example solutions to the questions and a second suggesting where to go next in your Perl studies and additional resources.

Book Style

The book is the fifth edition of the de facto standard Perl learning book. It is based on the courses taught by the authors, and as such follows a fairly class-room based approach.

The Perl community is noted for it's humour and this book is no exception, it is full of silly footnotes and variable names. The humour and style should not offend anyone but I found it tiring at times.

To keep the code sections short and clear, most of the code examples are incomplete, the full versions can be downloaded from the publisher should you wish to study them. Example solutions to the chapter-end questions can also be downloaded - though there are verbal solutions to all problems and code excerpts.

Reviewer's Opinion

The book has evolved over five editions and is highly regarded with the Perl community, it is the de facto standard beginner's Perl book that is usually quoted on any on-line forum when someone asks where to start. Having used Perl for over a decade and been immersed in the Perl community for most of that time, I found this book challenging to approach objectively.

Each section is broken into small digestible sections, which gradually build into a full picture. I was pleased that I found things I had forgotten or did not know, however I also found the code style a bit odd. The code is very much written in "baby perl" a style often used by beginners that is distinct from most regular users. While the style is significantly better than that used by most people who just hack at Perl, it is not modern idiomatic Perl style. It is a challenge for a introductory book to maintain the balance between learning the topic and "standard" style which could be a little too terse for a beginner. While I accept the style compromise anyone continuing with their Perl studies would be advised to look at more advanced books such as "Effective Perl Programming" or "Perl Best Practices".

The book does not cover all aspects of the Perl language or the community and to do so would have made the book too large and unwieldy. I believe that the book is well balanced and is a good place to start learning Perl, the compromise works. As a result after the book has been read a few time I believe it will not prove too useful as a reference book, as there are better alternatives - the built in Perl documentation for example.

As someone experienced with the language I am not the best placed to spot forward references, however I felt that the book is not prone to this problem. Forward references and assumed knowledge can bedevil introductory books and are often not spotted by reviewers and technical editors as they mentally fill-in the blanks without noticing. The book does, in a few places, make explicit forward references, which to me seemed appropriate.