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

use strict;
use warnings FATAL => 'all';

use Apache2::RequestRec ();
use APR::Table ();

use Apache2::Const -compile => qw(OK M_POST);

#test the 1.x style perl-script handler

sub handler {
    my $r = shift;

    $ENV{FOO} = 2;

    if ($r->method_number == Apache2::Const::M_POST) {
        my $cl = $r->headers_in->get('content-length');
        my $buff;
#XXX: working around a bug in ithreads Perl
#that would cause modules/cgi #3 to fail
#        read STDIN, $buff, $cl;
        read 'STDIN', $buff, $cl;
        print $buff;
    }
    else {
        print "1..3\n";
        print "ok 1\n", "ok ", "$ENV{FOO}\n";
#XXX: current implementation of tie %ENV to $r->subprocess_env
#     is not threadsafe
#        my $foo = $r->subprocess_env->get('FOO');
        my $foo = $ENV{FOO};
        $foo++;
        print "ok $foo\n";
    }

    Apache2::Const::OK;
}

1;
__END__
SetHandler perl-script
PerlResponseHandler TestApache::cgihandler