On CPAN you will be able to find a number of Perl modules created to run under mod_perl. We will give a presentation of them here and ways to get at these modules.
Apache/Perl modules are somewhat different from the many others found on CPAN (http://www.cpan.org/). Most Perl modules are "building blocks"; developers use them to build applications or even more building blocks. It just so happens that Apache/Perl modules are encapsulted inside a namespace and .pm file. However, this does not make them all building blocks, many are just like Apache modules written in C: you install them, edit the server configuration files and you're done.
Before you start a new module,
consider this: Apache/Perl modules are useless outside of mod_perl and Apache.
Do your best to design such that your
Apache::* module will make good use of the building blocks found on CPAN,
putting together new building blocks where appropriate and simply glue them together with the Apache API,
Apache::* modules very small.
These modules will also serve as good examples,
showing you where modules can step in during a stage of a request with
You'll also see how and when to use the Apache API methods.
Apache and Perl are world-wide collaborative efforts; naturally, the Apache/Perl integration project is the same. You've started on the right foot simply by reading this document, thanks! Please make sure you've read the main Perl module list at http://www.cpan.org/modules/00modlist.long.html, all that is said there is relevant here!
If you wish to share your module(s) in the Perl way, by putting them on CPAN, send a request to email@example.com to get set up with a PAUSE user id and directory. See http://www.cpan.org/modules/04pause.html for more details.
HINT: For a nice set of template files try this:
% h2xs -AX -n Apache::YourPackageName
Like other CPAN modules, the Apache/Perl modules are listed on the Perl module list, under the World Wide Web category: http://www.cpan.org/modules/00modlist.long.html#ID15_WorldWideW . Browse down the page to find the
Apache:: modules, organized by their role in the requets cycle.
Modules listed with the APML as is contact are part of the mod_perl distribution package. Other modules can be found on CPAN in the http://www.cpan.org/modules/by-module/Apache/ directory. If they have not made it to CPAN yet, they might be found in the mod_perl contrib directory at http://perl.apache.org/dist/contrib/. Otherwise, feel free to ask the contact author or the list how you can go about getting your hands on a copy. The modules listed with MPB as the author were present in the Writing Apache Modules with Perl and C book by Lincoln Stein and Doug MacEachern. If you can't find these modules on CPAN, look for them at http://modperl.com:9000/book/source/.