O'Reilly's Perl Resource Kit is a shrinkwrapped collection of software and documentation in two flavors: Unix and Win32. Each contains a CD-ROM with the CPAN and four books: the two-volume Perl Module Reference, the Perl Utilities Guide, and Programming with Perl Modules. (There's also a wee version of TPJ.) The Unix kit came out in November 1997; its CD contains Perl 5.004, and a tool written by Larry Wall called JPL (Java-Perl Lingo). The Win32 kit came out in August 1998; its CD contains Perl 5.005 and a number of tools written by ActiveState, such as a debugger and a Package Manager for installing modules on Win32.
TPJ has never had reviews because I could never figure out how to do them right. Not only was I worried about biases from the tangled web of relationships (both business and personal) that suffuse the Perl community, reviewing a software product or book is just plain hard. Not only do you have to examine it meticulously, you have to put yourself in the place of novices, experts, the patient, the impatient, those who learn by reading, and those who learn by doing. Figuring that multiple viewpoints are more readily expressed by multiple people than a single person, I've solicited four independent reviews of O'Reilly's Perl Resource Kit, and published them side by side so you can make up your own mind. Sure enough, the reviews spanned a wide variety of opinion. Enjoy! Jon
Ratings are from 0 to 5, with 5 being best.
The Win32 Edition of the Perl Resource Kit is an essential reference for Perl programmers on this platform, though not without its limitations. The volume Programming with Perl Modules, by Erik Olson, is excellent and has by far the best discussions I've seen of OLE Automation, ADO, and ODBC as they apply to Perl. These are crucial topics and for my purposes have largely justified the cost of the package.
The bulk of the package is the two volume module reference. Although these contain no information that can't be found elsewhere, they are certainly in a more convenient form, especially for old guys like me who prefer their words on paper and their paper in a binding.
The software distribution has some fine tools, like the graphical debugger, which is a nice bit of work with a DevStudio-style interface (which I happen to like, though Unix folks tend to hate it). PerlCOM and PerlCtrl are interesting tools as well which could be useful, though I haven't yet had the occasion. The essentials for me are Perl and PerlScript, which are freely available and more up-to-date elsewhere.
The Perl Utilities Guide volume also has some awfully good coverage of important Win32-specific topics that are not readily found elsewhere, such as the use of Perl in Active Server Pages. However, I was disappointed in the section on writing Perl extensions, which is a very cursory introduction. In a package of this scope (and price), I don't know why this topic couldn't have been covered in depth. Yes, I can find it on-line, but that's true of much of the PRK already.
The Win32 PRK is a very useful reference and I rely on it heavily. With deeper coverage of a few areas, it could be even more valuable. I rate it 5 for utility and 4 for value.
The Perl Resource Kit picks up where chapter 7 of Programming Perl left off. This is a good thing--at 3 volumes and nearly 1200 pages, the content of the PRK would have made Programming Perl unbalanced and unwieldy. Still, the PRK is an invaluable addition to your bookshelf. If you plan to do any serious Perl programming, you should have it.
The PRK covers Perl modules--reusable code packages that are central to the idea of sharing code. When you use modules, you not only won't be reinventing the wheel, your program can take advantage of the very latest technology in Perl. All of these modules are available for downloading from the CPAN (Comprehensive Perl Archive Network), or from the handily included CD-ROM. You could find all of the modules' documentation on the CPAN (with some effort), but O'Reilly has included it all in one, convenient and easily accessible, place.
I have only two problems with the PRK. First, I wish it had been organized differently. The book parallels the CPAN directory structure (a good thing), but I am more familiar with alphabetical categorization; thus I am constantly picking up the wrong volume (and using the Index a lot). Second, the price ($150) is steep for most individuals and many organizations. I would have preferred something around $100, myself.
Nevertheless, if you are serious about Perl, this is a reference you should have. If you work at a company, try to get one for several programmers to share. If you buy your own books, start budgeting for this one. The price may be high, but it's worth it.
Version reviewed: Unix
Overall rating: 5
Utility: Very useful
I learned about the Perl Resource Kit from an O'Reilly flier and immediately decided I had to have it. At the time I was quite new to Perl; I'd just finished the Llama book and was busy wrestling with the Camel. The Resource Kit seemed like a great idea, and having the CPAN on a CD was pretty appealing.
At first glance the Perl Utilities guide was a bit of a disappointment because so much is devoted to the new JPL package. This would be cool if I were interested in Java, but right now what I do is DNA sequence analysis and data mining, so what I need is Perl, not Java. But this little volume is saved by the very nice selection of five articles from TPJ collected at the end.
The real core of the kit is the two volume Perl Module Reference, containing complete documentation for the snapshot of CPAN included on the CD. The CD and the Module Reference make this kit worthwhile from my perspective. As any newcomer to Perl quickly learns, there is an astonishing wealth of free code available in CPAN, but how is one to get a handle on it? How do you know what's useful? All of this is available online, of course, in the pod or in indices or in newsgroups. You can also pick out a lot of pointers to CPAN modules from the Llama, Camel, and Ram books (yes, I did get a free coffee mug from Amazon this year), but as far as I'm concerned nothing compares with having a complete reference right there on the shelf.
The kit also includes Nate Patwardhan's book Programming With Perl Modules, which has a very nice intro to using modules. Of course, this is easy to do, but for a newcomer like me it takes a little getting used to, and I found this book to be a perfect starting point, expanding on material you can find in the Llama book (like the difference between use and require), and then moving through a wide variety of different modules, from the utilitarian GetOpts to modules for networking, web programming, graphics, and database applications. The book is a lot of fun to read. The writing is clear, the examples are good, and Patwardhan introduces the topics as well as the modules--helpful for those of us who came to programming late in life.
Whether the PRK is worth the money really depends on what you need to get out of Perl. If you're writing code to address a few specific needs, you may not need many CPAN modules, so retrieving them online and reading the documentation might work fine for you. But this kit is about Perl power tools, and if your programming needs are broad it's hard to see how you can do without these books on your shelf. This kit puts the CPAN at your fingertips, taking it offline and into your briefcase where you can read it on the train.
Version reviewed: Unix
Value: Can you afford not to have this set?
When O'Reilly first contacted me to ask for permission to distribute my Text::Template module in the PRK, I was delighted, particularly since they said they'd send me a free copy once it came out. I like getting things for free.
But when it arrived, I was puzzled. It has three big pieces, and while I can imagine people for whom some of the pieces are useful, I can't imagine anyone who wants all of the pieces, which you have to buy together.
For example, the most interesting and novel part of the package is Larry Wall's 'JPL', which is a kit for integrating Perl and Java. Maybe this is the answer to someone's prayer. But I can imagine that person turning their eyes to heaven (Or Sebastopol, which must be nearly the same) and saying 'Thank you! But what did you throw in all that other stuff for?'
Patwardhan and Irving's book Programming with Perl Modules looks nice (although I didn't read it because I already know how to use most of that stuff) and I can imagine someone who would be very happy with it. But is this the same person who prayed for JPL? Probably not.
The CD contains a snapshot of a lot of stuff that is already on CPAN, which would be nice, except that all that stuff is already on CPAN--and the versions on the CD are out-of-date. There are two fat books of module documentation--simply typeset versions of the pods supplied by the various module authors. These books, therefore, were written by a collaboration of about four hundred people. Some of them write well, and some of them don't, and the editing is sparse or nonexistent. Some of the documentation is complete, and correct, and some isn't. And anyway, it's on CPAN, so why pay good money for out-of-date versions?
Someone suggested that the real reason this part exists is for people with pointy-haired bosses who wouldn't let them use CPAN modules because they didn't come in a pretty box. Here's the pretty box--problem solved.
I can believe that those people exist, and if you have that problem, the PRK might be the solution. But are you also the person who prayed for JPL or who wants to read the Patwardhan book? Probably not. And once you have the box, you might as well put it in the closet, because the boss won't know the difference if you get fresh versions direct from CPAN. ("Sure, Boss. It came with the PRK.")
It wasn't too long before the PRK moved off my convenient Perl shelf into my hidden closet with the other things that I never use that are too expensive to throw away. It sure does take up a lot of space! And unless you're someone doing Perl-Java integration who wants a book about programming with Perl modules and whose boss has forbidden CPAN, I think yours will probably end up doing the same thing.
Version reviewed: Unix