on September 15, 2002
Over the last few years mod_perl has become a serious force in web development. If you're building a web site to run on an Apache server and you want to write the code in Perl, then you're going to want to install mod_perl on your server too as it's the best way to avoid many of the performance issues with traditional CGI. It's taken a while for publishers to wake up to the fact, however, and there haven't been many books in the shops. It looks like this will be the year that this changes. A number of mod_perl books are about to be published and this is the first.
This book uses the popular "cookbook" approach, where the content is broken down into short "recipes" each of which addresses a specific problem. There are almost two hundred of these recipes in the book arranged into chapters which discuss particular areas of mod_perl development. In my opinion the cookbook approach works much better in some chapters than in others.
It's the start of the book where the cookbook approach seems most forced. In chapter 1 problems like "You want to compile and build mod_perl from source on a Unix platform" provide slightly awkward introductions to explainations about obtaining and installing mod_perl on various platforms (kudos to the authors for being up-to-date enough to include OS X in list list). All the information you want is there however, so by the end of the chapter you'll have mod_perl up and running.
Chapter 2 looks at configuration options. It tell you how to get your CGI programs running under mod_perl using the Apache::Registry module which simulates a standard CGI environment so that your CGI programs can run almost unchanged. This will give you an immediate performance increase as you no longer have the performance hit of starting up a Perl interpreter each time one of your CGI programs is run. This chapter also addresses issues like caching database connections and using mod_perl as a proxy server.
We then get to part II of the book. In this section we look at the mod_perl API which gives us to the full functionality of Apache. This allows us to write Perl code which is executed at any time during any of the stages of Apache's processing.
Chapter 3 introduces the Apache request object which is at the heart of the API and discusses various ways to get useful information both out of and back into the object. Chapter 4 serves a similar purpose for the Apache server object which contains information about the web server and its configuration.
In chapter 5 the authors look at Uniform Resource Indentifiers (URIs) and discuss many methods for processing them. Chapter 6 moves from the logical world of URIs to the physical world of files. This chapter starts by explaining the Apache::File module before looking at many ways to handle files in mod_perl.
The previous few chapters have built up a useful toolkit of techniques to use in a mod_perl environment, in chapters 7 and 8 we start to pull those techniques together and look in more detail at creating handlers - which are the building blocks of mod_perl applications. Chapter 7 deal with the creation of handlers and chapter 8 looks at how you can interact with them to build a complete application.
Chapter 9 is one of the most useful chapters in the book as it deals with benchmarking and tuning mod_perl applications. It serves as a useful guide to a number of techniques for squeezing the last drops of performance out of your web site. Chapter 10 is a useful introduction to using Object Oriented Perl to create your handlers. Whilst the information is all good, this is, unfortunately, another chapter where the cookbook format seems a little strained.
Part III of the book goes into great detail about the Apache lifecycle. Each chapter looks at a small number of Apache's processing stages and suggests ways that handlers can be used during that stage. This is the widest ranging part of the book and it's full of example code that really demonstrates the power of the Apache API. I'll just mention one particular chapter in this section. Chapter 15 talks about the content generation phrase. This is the phase that creates the actual content that goes back to the user's browser and, as such, is the most important phase of the whole transaction. I was particularly pleased to see that the authors took up most of this chapter looking at methods that separate the actual data from the presentation. They have at recipes that look at all of the commonly used Perl templating systems and a few more recipes cover the generation of output from XML.
Finally, two appendices give a brief reference to mod_perl hooks, build flags and constants and a third gives a good selection of pointers to further resources.
This is the book that mod_perl programmers have been waiting for. The three authors are all well-known experts in the field and it's great that they have shared their knowledge through this book. If you write mod_perl applications, then you really should read this book.
on July 24, 2002
As someone who's been writing code for mod_perl-enabled Apache servers for six years, I can honestly say that this book is one of the best single references on a topic I've seen. Much like the "Perl Cookbook" and "Writing Apache Modules in Perl & C" wrapped into a single volume (with all the recipes tightly focused on mod_perl). I've recommended it to everyone I know who writes for this platform, and it is rarely more than 2-3 feet from my keyboard. Covering the subject as deeply as sub-classing the Apache classes in XS (Perl's layer of glue for writing and linking C code), there's very little about mod_perl you won't find in the book.
on February 7, 2002
The authors of the "mod_perl Developer's Cookbook" have brought together in one place a collection of "best practices" for dealing with just about every aspect of mod_perl development.
The book begins by covering installation and configuration in such a way that you will avoid potential pitfalls and be able to create a custom built mod_perl enabled Apache web server with ease.
Once you've got your Apache/mod_perl web server up and running, then the authors take you on what amounts to a guided tour of just what mod_perl can do from the basics of understanding the Apache request object and all the "ins and outs" of the mod_perl API, to advanced URI manipulation, custom content creation, and tuning techniques that will make you a "mod_perl hero" among your peers.
After completing your whirlwind guided tour of the mod_perl API, then you get to take mod_perl out for a test ride. The authors explain each phase where mod_perl lets you tie into Apache from the server configuration and startup phase to stepping in at any point in the Apache request cycle.
There's alot here in the cookbook that should lead to a significant surge in effective mod_perl usage. You come away with numerous ideas on how to apply mod_perl to solve your web application needs. The examples are drawn from practical and "real-world" experience, and they don't shy away from getting down to the "nuts and bolts" of even XS programming when that's what is required to get the job done.
When you don't have it open for reference, the "mod_perl Developer's Cookbook" deserves a place on the "Must Have" section of your bookshelf.
on July 17, 2002
This book is terrific! We were having problems with mod_perl memory usage and performance with our new website. This book gave us great ideas on how to implement startup.pl scripts, Apache::DBI, and many other Apache parameters. But the biggest payback was in the profiling of our code. The book suggested problem areas (such as slurping files), and provided reference to Apache::DProf which is a beautiful tool for profiling. The end result has been tremendous performance increase. Well worth the price (and even the quick shipping charges), this book is very timely! Kudos to Geoff, Paul and Randy on a robust, selfless and important effort!
on March 7, 2002
For years it seems the only good books on mod_perl were the O'Reilly Apache Modules with C book, and the excellent online mod_perl Guide by Stas Bekman (perl.apache.org). Now we have a technical book on mod_perl with examples and useful code for utilizing all of the hooks and handlers that mod_perl offers. It give a good insight into Apache iteself, too.
There's much emphasis placed on optimization and tuning. Code samples are often presented with notes about performance issues. All of the mod_perl handlers and hooks are explored in detail, each has it's own section in the guide. A whole chapter is devoted to performance tuning, and there's a good discussion of OO mod_perl at the end.
Great book all around, it's definitely a help for my current mod_perl and apache programming projects.
on July 20, 2002
This book hits the nail on the head. Excellent technical information, much much much more than your typical book that is just regurgitated man(1) pages. Geoff and company delivery a book that shows you the power of mod/perl, why you should use it, and why it is great for what your doing. This book is part of my standard fare.