These modules will also serve as good examples, showing you where modules can step in during a stage of a request with Perl*Handler callbacks. You'll also see how and when to use the Apache API methods.
If you have any additions or changes for the list, please send them to the Apache/Perl mailing list or to me.
If you wish to share you module(s) the Perl way, by putting them on CPAN, send a request to me or modules@perl.com to get set up with a PAUSE user id and directory.
HINT: For a nice set of template files try this:
% h2xs -AX -n Apache::YourPackageName
Apache:: * PerlHandler's Archive i List archive contents PETERSON ASP bdpO Implement Active Server Pages CHAMAS BBS bdpO BBS like System for Apache MKOSS CallHandler cdpf Map filenames to subroutine calls GKNOPS Cachet i OutputChain with caching MERLYN Dir i OO (subclassable) mod_dir replacement DOUGM Embperl Rmcf Embed Perl in HTML GRICHTER ePerl Rdpr Fast emulated Embedded Perl (ePerl) RSE FTP i Full-fledged FTP proxy PMKANE Gateway bdpf A multiplexing gateway CCWF GzipChain bmpf Compress files on the fly ANDK IDC_HTX i PTI JavaScript bdpf Generate JavaScript code ABH Layer bdpf Layer content tree over one or more SAM ModuleDoc bdpf Self documentation for Apache C modules DOUGM OutputChain bmpO Chain output of stacked handlers JANPAZ PassFile bdpf Send file via OutputChain ANDK PerlRun bmpf Run unaltered CGI scripts APML PrettyText bdpf Re-format .txt files for client display CHTHORMAN RandomLocation bdpf Random image display MDARWIN Registry Rmpf Run unaltered CGI scripts APML RobotRules bdpf Enforce robot rules (robots.txt) PARKER Sandwich bmpf Layered document (sandwich) maker VKHERA VhostSandwich bdpf Virtual host layered document maker MARKC SSI bmpO Implement server-side includes in Perl KWILLIAM SSIChain bmpO SSI on other modules output JANPAZ Stage bdpf Manage a document staging directory ANDK TarGzip c ZENIN TimedRedirect bdpf Redirect urls for a given time period PETERM UploadSvr bdpO A lightweight publishing system ANDK WDB bdpf Database query/edit tool using DBI JROWE WebSQL cdpO Adaptation of Sybase's WebSQL GUNTHER * PerlHeaderParserHandler's AgentDeny bdpf Deny abusive User-Agents ROBH * PerlAuthenHandler's AuthAny bdpf Authenticate with any username/password DOUGM Authen bmpf Perl Apache authentication utilities SKANE AuthenCache bmpf Cache authentication credentials JBODNAR AuthCookie bdpO Authen + Authz via cookies EBARTLEY AuthenDBI bmpO Authenticate via Perl's DBI MERGL AuthExpire i Expire Basic auth credentials DOUGM AuthenGSS cdpf Generic Security Service (RFC 2078) DOUGM AuthenIMAP bdpf Authentication via an IMAP server MICB AuthLDAP bdpf LDAP authentication module CDONLEY AuthNIS bdpf NIS authentication and authorization DOUGM AuthenRaduis bdpf Authentication via a Radius server DANIEL AuthenSmb bdpf Authenticate against NT server PARKER AuthenURL bdpf Authenticate via another URL JGROENVEL BasicCookieAuth cdpf Accept cookie or basic auth creds PMKANE DBILogin bdpf Authenticate to backend database JGROENVEL DCELogin bdpf Obtain a DCE login context DOUGM PHLogin bdpf Authenticate via a PH database JGROENVEL * PerlAuthzHandler's AuthCookie cdpf Authen + Authz via cookies EBARTLEY AuthzAge bmpf Authorize based on age APML AuthzDCE cdpf DFS/DCE ACL based access control DOUGM AuthzDBI bmpO Group authorization via Perl's DBI MERGL AuthNIS bdpf NIS authentication and authorization DOUGM RoleAuthz i Role-based authorization DOUGM * PerlAccessHandler's AccessLimitNum bmpf Limit user access by number of requests APML DayLimit bmpf Limit access based on day of week APML RobotLimit bdpf Limit access of robots PARKER * PerlTypeHandler's AcceptLanguage bdpf Send file type based on language pref ROBH * PerlTransHandler's (May also include a PerlHandler) DynaRPC i Dynamically translate URIs into RPCs DOUGM Junction i Mount remote webserver namespace DOUGM LowerCaseGETs bdpf Lowercase URI's when needed PLISTER MsqlProxy bmpf Translate URI's into mSQL queries APML ProxyPass bdpf Perl implementation of ProxyPass MJS ProxyPassThru bdpO Skeleton for vanilla proxy RMANGI ProxyCache i Caching proxy DOUGM Throttle bdpf Speed-based content negotiation DONS * PerlFixupHandler's HttpEquiv bdpf HTML HTTP-EQUIV tags to HTTP headers ROBH Timeit bmpf Benchmark PerlHandlers APML Usertrack bdpf Perl version of mod_usertrack ABH * PerlLogHandler's DBILogConfig bdpf Custom format logging via DBI JBODNAR DBILogger bdpf Logging via DBI ABH DumpHeaders bdpf Watch HTTP transaction via headers DOUGM Traffic bdpf Logs bytes transferred, per-user basis MAURICE WatchDog c Look for problematic URIs DOUGM * PerlChildInitHandler's Resource bmpf Limit resources used by httpd children APML * Server Configuration ConfigLDAP i Config via LDAP and <Perl> MARKK ConfigDBI i Config via DBI and <Perl> MARKIM ModuleConfig bmcO Interface to configuration API APML PerlSections bmpO Utilities for <Perl> sections APML httpd_conf bmpO Methods to configure and run an httpd APML src ampO Finding and reading bits of source APML * Database DBI bmpO Persistent DBI connection mgmt. MERGL Sybase::DBlib bmpO Persistent DBlib connection mgmt. BMILLET Sybase::CTlib bapO Persistent CTlib connection mgmt. MDOWNING Mysql bdpO Persistent connection mgmt. for Mysql NJENSEN * Interfaces and integration with various Apache C modules Constants Rmcf Constants defined in httpd.h APML ExtUtils bmpO Utils for Apache:C/Perl glue APML Include Rmpf mod_include + Apache::Registry handler APML Global cmcO Access to server global variables APML Log bmcO ap_log_error interface APML LogFile cmcO Interface to Apache's piped logs, etc. DOUGM Mime bmcf Interface to mod_mime functionality MDORMAN Module bmcO Interface to Apache C module structures DOUGM Options Rmpf Import Apache::Constants 'options' APML Scoreboard cmcO Interface to scoreboard API DOUGM Servlet ampO Interface to the Java Servlet engine IKLUFT Sfio cmcO Interface to r->connection->client->sf* DOUGM Tie bmcO Tie interfaces to Apache structures APML URI bmfO URI component parsing and unparsing APML Util bmcf Interface to Apache's util*.c functions APML * Development and Debug tools Debug Rmpf mod_perl debugging utilities APML DProf bmcf Hook Devel::DProf into mod_perl DOUGM FakeRequest ampO Implement Apache methods off-line APML Peek amcf Devel::Peek for mod_perl APML SawAmpersand bmpf Make sure noone is using $&, $' or $` APML SizeLimit bmpf Graceful exit for large children DOUGB SmallProf bmpf Hook Devel::SmallProf into mod_perl DOUGM StatINC bmpf Reload require'd files when updated APML Status Rmpf Embedded interpreter runtime status APML Symbol bmcO Things for symbol things APML test Rmpf Handy routines for 'make test' scripts APML * Misc Byterun i Run Perl bytecode modules DOUGM Icon idcO Access to AddIcon* configuration DOUGM Mmap bdcf Share data via Mmap module FLETCH Persistent bdpO Store data via IPC::, DBI, or disk DOUGM PUT cdpf HTTP PUT method handler module SORTIZ RegistryLoader bmpf Apache::Registry startup script loader APML Request bmpO CGI.pm functionality using API methods LDS Safe ampO Adaptation of "safecgiperl" APML Session bmpO Maintain client <-> httpd session/state JBAKER SIG amoO Signal handlers for mod_perl APML State i Powerful state engine RSE TempFile bdpf Manage temporary files TOMHUGHES
ABH Ask Bjørn Hansen <ask@netcetera.dk> ANDK Andreas König <a.koenig@franz.ww.TU-Berlin.DE> APML The Apache/Perl Mailing List <modperl@apache.org> BMILLETT Brian Millett <bpm@techapp.com> CCWF Charles C. Fu <ccwf@bacchus.com> CDONLEY Clayton Donley <donley@wwa.com> CHAMAS Joshua Chamas <chamas@alumni.stanford.org> CHTHORMAN Chris Thorman <chris@thorman.com> DANIEL Daniel <daniel-authenradius@electricrain.com> DONS Don Schwarz <don@dons.xnet.com> DOUGB Doug Bagley <doug@dejanews.com> DOUGM Doug MacEachern <dougm@pobox.com> EBARTLEY Eric Bartley <bartley@osd.cc.purdue.edu> FLETCH Mike Fletcher <lemur1@mindspring.com> GKNOPS Gerd Knops <gerti@BITart.com> GRICHTER Gerald Richter <richter@ecos.de> GUNTHER Gunther Birznieks <gunther@nhgri.nih.gov> HMUELLER Hanno Mueller <hmueller@mail.kabel.de> IKLUFT Ian Kluft <ikluft@cisco.com> JANPAZ Honza Pazdziora <adelton@informatics.muni.cz> JBAKER Jeffrey Baker <jeff@godzilla.tamu.edu> JBODNAR Jason Bodnar <jcbodnar@mail.utexas.edu> JGROV John D Groenveld <jdg117@elvis.arl.psu.edu> JEFFH Jeffrey Hulten <jeffh@premier1.net> JROWE Jeff Rowe <beowulf@lava.net> KWILLIAM Ken Williams <ken@forum.swarthmore.edu> LDS Lincoln D. Stein <lstein@genome.wi.mit.edu> MARKC Mark Constable <markc@goldcoast.org> MARKIM Mark A. Imbriaco <mark@itribe.net> MARKK Mark Kennedy <mtk@ny.ubs.com> MAURICE Maurice Aubrey <maurice@hevanet.com> MDARWIN Matthew Darwin <matthew@davin.ottawa.on.ca> MDORMAN Michael Alan Dorman <mdorman@calder.med.miami.edu> MDOWNING Mark Downing <mdowning@rdatasys.com> MERGL Edmund Mergl <E.Mergl@bawue.de> MERLYN Randal L. Schwartz <merlyn@stonehenge.com> MJS Michael Smith <mjs@iii.co.uk> MKOSS Max Kossatzmax <kossatz@thing.at> MICB Malcolm Beattie <mbeattie@sable.ox.ac.uk> NJENSEN Neil Jensen <njensen@habaneros.com> PARKER Michael Parker <parker@austx.tandem.com> PETERM Peter Marshall <peterm@pageactive.com> PETERSON Jonathan Peterson <jon@amxstudios.com> PLISTER Peter Lister <p.lister@cranfield.ac.uk> PMKANE Patrick Michael Kane <modus@pr.es.to> PTI Peter Tillemans <pti@pandora.be> RMANGI Rick Mangi <rmangi@tgix.com> ROBH Rob Hartill <robh@imdb.com> RSE Ralf S. Engelschall <rse@engelschall.com> SAM Simon Matthews <sam@peritas.com> SKANE Stephen E Kane <sek112@elvis.arl.psu.edu> SORTIZ Salvador Ortiz <sortiz@sog@msg.com.mx> TOMHUGHES Tom Hughes <tom@compton.demon.co.uk> VKHERA Vivek Khera <vivek@khera.org> ZENIN Byron Brummer <zenin@archive.rhps.org>