The following module was proposed for inclusion in the Module List:
modid: Apache::Emulator
DSLIP: adpOp
description: Emulates mod_perl request object from CGI
userid: NWETTERS (Nigel Wetters)
chapterid: 15 (World_Wide_Web_HTML_HTTP_CGI)
communities:
similar:
Apache
rationale:
I've put together a module that emulates the Apache request object
from CGI. Think of it as the nemesis to Apache::Registry.
The reason behind the code was simple. I had a look at Ave
Wrigley's WWW::AdManager in the hope of adding the features I
needed. I was impressed that he'd got the code to work both as an
Apache module and through CGI. He'd managed to do this by having
separate entry points for Apache and CGI, and a few 'if
($ENV{MOD_PERL}){...}'. It looked like the code was going to become
unmaintainable as functionality was added.
So, I stripped the CGI-dependent code from WWW::AdManager, and
concentrated on getting the mod_perl-only module working through
CGI. The result was Apache::Emulator. I've been lazy and only
implemented the easy bits and the bits necessary to get Ave's
AdManager working (i.e. there's a few essentials such as header_in,
headers_in and headers_out that still don't exist).
Initial benchmarks with WWW::AdManager suggest that stripping out
CGI-dependent conditionals speeded up the module by 30%, both as an
Apache module and as a CGI (through Apache::Emulator).
Please let me know your thoughts, and any potential applications
that you can foresee. I'd also like to know of any other modules
that I can use as test cases for adding functionality to
Apache::Emulator. Plus, of course, I'd love it if everyone emailed
me the remaining unimplemented methods ;)
enteredby: NWETTERS (Nigel Wetters)
enteredon: Mon Oct 29 12:36:21 2001 GMT
The resulting entry would be:
Apache::
::Emulator adpOp Emulates mod_perl request object from CGI NWETTERS
Thanks for registering,
The Pause Team
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=fe100000_46812be5fb1a4255&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=fe100000_46812be5fb1a4255&SUBMIT_pause99_add_mod_insertit=1