=head1 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.

=head2 where are the main differences?

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

=head2 BUGS

With this code I cannot use the file upload feature as expected. Only
the first file upload within a the life of a server is guaranteed to
work. Also ok are small files < 15k (haven't tested the exact limit
where things go astray).

=cut

This code is faster than Lincoln's too:

# Benchmark: timing 1000 iterations of cginamed, cgipos, fastnamed, fastpos, xanamed, xapos...
#   cginamed:  6 secs ( 5.85 usr  0.08 sys =  5.93 cpu)
#     cgipos:  4 secs ( 3.43 usr  0.02 sys =  3.45 cpu)
#  fastnamed:  4 secs ( 3.38 usr  0.01 sys =  3.39 cpu)
#    fastpos:  3 secs ( 3.06 usr  0.01 sys =  3.07 cpu)
#    xanamed:  7 secs ( 5.76 usr  0.09 sys =  5.85 cpu)
#      xapos:  4 secs ( 3.27 usr  0.05 sys =  3.32 cpu)

And with the small test script in the eg/ directory (A CGI that runs a
counter and a time and a textfield, I could run 100 loops in 23
seconds on a Indy 100 MHz, not a terrific fast machine.


Enjoy,
Andreas, 18 Aug, 1996

