Chapter 15. More mod_perl

In Chapter 14, you saw just how versatile mod_perl handlers are and how they can be used within the various phases of the server life cycle as well as HTTP request phase cycle. Most often, you will be most concerned with developing applications for the HTTP response phase. This chapter focuses on providing examples for this phase.

mod_perl Handlers or ModPerl::Registry?

You saw in Chapter 14 how to easily use ModPerl::Registry to convert the contact list CGI application to mod_perl application. In most cases, if you have a lot of code written as a ModPerl::Registry program, this should suffice for what you want to do. ModPerl::Registry essentially turns your script into a mod_perl handler, though it's worth considering the steps that that ModPerl::Registry has to perform. These steps include the following:

  • Create a namespace derived from the filename.

  • Check if the script should be compiled, depending on whether it is in the cache, as well as whether it was modified. If there is no need for it to be compiled, skip to execution.

  • If it is not in cache, a check is made to determine if the script was allowed to be executed and can be compiled (if Options ExecCGI is set, which is the Apache configuration file for the directory the script is in).

  • The process changes its current working directory from the server root directory to the directory where the script exists.

  • Read in the script, stripping various components, including the options in the shebang #!/usr/bin/perl ...

Get Developing Web Applications with Perl, memcached, MySQL® and Apache now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.