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.
Practical Task Scheduling Deployment
July 20, 2016 12:00 pm CDT
One of the best things about the UNIX environment (aside from being stable and efficient) is the vast array of software tools available to help you do your job. Traditionally, a UNIX tool does only one thing, but does that one thing very well. For example, grep is very easy to use and can search vast amounts of data quickly. The find tool can find a particular file or files based on all kinds of criteria. It's pretty easy to string these tools together to build even more powerful tools, such as a tool that finds all of the .log files in the /home directory and searches each one for a particular entry. This erector-set mentality allows UNIX system administrators to seem to always have the right tool for the job.
Cron traditionally has been considered another such a tool for job scheduling, but is it enough? This webinar considers that very question. The first part builds on a previous Geek Guide, Beyond Cron, and briefly describes how to know when it might be time to consider upgrading your job scheduling infrastructure. The second part presents an actual planning and implementation framework.
Join Linux Journal's Mike Diehl and Pat Cameron of Help Systems.
Free to Linux Journal readers.Register Now!
- SUSE LLC's SUSE Manager
- Linux Kernel Testing and Debugging
- My +1 Sword of Productivity
- Tech Tip: Really Simple HTTP Server with Python
- Managing Linux Using Puppet
- Murat Yener and Onur Dundar's Expert Android Studio (Wrox)
- Returning Values from Bash Functions
- Raspberry Pi: the Perfect Home Server
- Rogue Wave Software's Zend Server
- Non-Linux FOSS: Caffeine!
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide