The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

DESCRIPTION

I have started with major hacks on top of Lincoln's version 2.23 of CGI.pm in order to get rid of both AUTOLOADING and uncontrolled global variables.

I release this package as CGI::XA (which stands for "for Apache") for a limited audience as a test case.

This software is alpha software and it is not clear if it will be supported for a longer time. My preferred solution would be, Lincoln accepts all the changes and continues with his excellent work.

where are the main differences?

    No AUTOLOAD
    use strict clean
    no exports
    no cgi-lib.pl compatibility
    no "Q" namespace
    inlined rearrange

This code is faster than Lincoln's too:

Benchmark: timing 1000 iterations of cginamed, cgipos, fastnamed, fastpos... cginamed: 7 secs ( 5.84 usr 0.08 sys = 5.92 cpu) cgipos: 4 secs ( 3.48 usr 0.01 sys = 3.49 cpu) fastnamed: 3 secs ( 3.17 usr 0.01 sys = 3.18 cpu) fastpos: 3 secs ( 2.91 usr 0.01 sys = 2.92 cpu)

The benchmark is done with the script in eg/bench.rearrange

And with the small test script eg/rgy-cgi-pm2.pl (A CGI that runs a counter and a time and a textfield, I could run 100 loops in 12 seconds on an Indy 100 MHz, not a terrific fast machine. The script on the other end of the connection is eg/rgy-cgi-pm2.client.

CGI::Switch -----------

With this very simple module you can run the identical script from your cgi-bin directory as a CGI script and from your perl alias script as a apache subroutine. See eg/rgy-cgi-pm2.pl for an example.

Enjoy, Andreas, 19 Aug, 1996