The Essential Perl Books
Perl has become one of the most important languages in the Unix/Internet world and is by far the most popular choice for CGI scripts on the World Wide Web. It is still growing rapidly and spreading to new applications. Perl is even making headway in non-Unix environments—a fact well attested to by the Microsoft NT presentations at the first Perl Conference, held August 19-21, 1997, in San Jose under the auspices of O'Reilly and Associates.
If you don't yet know Perl, learning it would be a good idea. For many kinds of end-user and system-administration applications (especially those involving text processing or the gluing together of several standard Unix tools), Perl is beyond price. Of the major interpretive Unix languages (shell, Tcl, Python, Emacs Lisp) only Python is truly competitive with Perl over Perl's entire range of applications, and even Python cannot match Perl's facilities for regular-expression-based text handling (though on the other hand Python probably scales up to very large and complex projects better).

Learning Perl (familiarly known as “the llama book”) is the introductory volume. It aims to teach elementary Perl quickly and appears to be targeted at people with little programming experience. While it does an excellent job of covering the basics, it omits a number of advanced topics including references and Perl's object system. It includes many exercises and could profitably be used as a textbook.

Programming Perl (well known as “the camel book”) is the intermediate-level volume and the best self-contained exposition of Perl. It describes the entire Perl language but provides only teasers on various Perl extensions (such as Perl/Tk for GUI programming) and the techniques for embedding Perl in C applications.
If you've seen the first edition of Programming Perl, you'll note many changes in the second edition besides just the coverage of the new Perl 5 features. The rather bizarre and haphazard organization of the first edition has been fixed—a huge plus. On the other hand, most of the whole-program Perl examples have been removed in the interest of keeping the book's page count below 700. (Tom Christiansen confirmed at the San Jose conference that he is working on a separate Perl cookbook.)

Advanced Perl Programming is a tome of esoterica for experienced Perl-heads. (It's fair to say you must be thoroughly versed in the material of the camel book to benefit from this “panther book”.) Within the language, it offers in-depth coverage of references, the Perl object system, typeglobs, eval, closures, modules and persistent-object techniques. It also covers the use of Perl/Tk to construct GUIs. The last three chapters cover extending Perl, embedding Perl and Perl's internals, each in detail.
The author of Advanced Perl Programming illuminates Perl by connecting it to an impressively broad range of issues in computer science and programming language design. At the same time, his discussion of the way Perl does things is refreshingly concrete. His diagrams of Perl's internal data structures do much to demystify such knotty topics as typeglobs. The end-of-chapter sections systematically comparing Perl features to analogs in other languages are extremely valuable. Finally, though Mr. Srinivasan clearly loves Perl, he is not afraid to point out its uglinesses and occasional design shortcomings. As a specialist in computer language design myself, I found his comments uniformly intelligent, incisive and tasteful.
The only flaw I detect in this book is a couple of chapters that describe favorite Perl hacks of the author's in a way not strongly motivated by the rest of the text. Even so, Advanced Perl Programming is an astonishingly sustained tour de force and, if not the best book of the three, certainly the most intellectually stimulating.
All three books are well written, lucid and (in the best hacker tradition) quite witty and funny as well. If you are going to buy only one Perl book, it should be Programming Perl, which serves quite well as a desk reference for the language. Serious programmers will find a rich feast in Advanced Perl Programming. Learning Perl serves as a satisfactory and nonthreatening introduction for those who lack the hacker nature.
All three books also do an excellent job of transmitting the Perl culture—the attitude, the jokes, the sense of mission, the deep connection to Unix tradition and the free-software culture. As with Linux, Perl's true strength is the collective talents of its enthusiasts, and those are well on display in these books.
Indeed, as Perl continues to spread to NT and Windows environments, it's not too much to hope that the spread of Perl culture will imply a lot of quiet subversion that prepares people for the Linux way. Even if these books were not excellent in many other ways, they would earn a warm welcome in LJ's pages on that account.

Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Dynamic DNS—an Object Lesson in Problem Solving | May 21, 2013 |
| Using Salt Stack and Vagrant for Drupal Development | May 20, 2013 |
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
| Non-Linux FOSS: Seashore | May 10, 2013 |
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
- New Products
- A Topic for Discussion - Open Source Feature-Richness?
- RSS Feeds
- Drupal Is a Framework: Why Everyone Needs to Understand This
- Validate an E-Mail Address with PHP, the Right Way
- Readers' Choice Awards
- The Secret Password Is...
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi

It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?




2 min 33 sec ago
2 hours 26 min ago
2 hours 29 min ago
2 hours 30 min ago
6 hours 55 min ago
8 hours 46 min ago
13 hours 59 min ago
17 hours 11 min ago
19 hours 26 min ago
19 hours 55 min ago