CGI-Application-Dispatch
view release on metacpan or search on metacpan
lib/CGI/Application/Dispatch.pm view on Meta::CPAN
package CGI::Application::Dispatch;
use strict;
use warnings;
use Carp 'carp';
use Try::Tiny;
our $VERSION = '3.12';
our $DEBUG = 0;
BEGIN {
use constant IS_MODPERL => exists($ENV{MOD_PERL});
use constant IS_MODPERL2 =>
(IS_MODPERL() and exists $ENV{MOD_PERL_API_VERSION} and $ENV{MOD_PERL_API_VERSION} == 2);
if(IS_MODPERL2()) {
require Apache2::RequestUtil;
require Apache2::RequestRec;
require APR::Table;
require Apache2::Const;
Apache2::Const->import(qw(OK SERVER_ERROR HTTP_BAD_REQUEST NOT_FOUND REDIRECT));
} elsif(IS_MODPERL()) {
require Apache::Constants;
Apache::Constants->import(qw(OK SERVER_ERROR BAD_REQUEST NOT_FOUND REDIRECT));
}
}
# these return values have different values used in different ENV
use Exception::Class (
'CGI::Application::Dispatch::Exception',
'CGI::Application::Dispatch::ERROR' => {
isa => 'CGI::Application::Dispatch::Exception',
alias => 'throw_error',
description => 500,
},
'CGI::Application::Dispatch::NOT_FOUND' => {
isa => 'CGI::Application::Dispatch::Exception',
alias => 'throw_not_found',
description => 404,
},
'CGI::Application::Dispatch::BAD_REQUEST' => {
isa => 'CGI::Application::Dispatch::Exception',
alias => 'throw_bad_request',
description => 400,
},
);
=pod
=head1 NAME
CGI::Application::Dispatch - Dispatch requests to CGI::Application based objects
=head1 SYNOPSIS
=head2 Out of Box
Under mod_perl:
<Location /app>
SetHandler perl-script
PerlHandler CGI::Application::Dispatch
</Location>
Under normal cgi:
( run in 1.928 second using v1.01-cache-2.11-cpan-39bf76dae61 )