CGI-Application-Demo-Dispatch
view release on metacpan or search on metacpan
lib/CGI/Application/Demo/Dispatch.pm view on Meta::CPAN
package CGI::Application::Demo::Dispatch;
# Author:
# Ron Savage <ron@savage.net.au>
our $VERSION = '1.05';
# -----------------------------------------------
1;
=head1 NAME
C<CGI::Application::Demo::Dispatch> - Demonstrate the delights of CGI::Application::Dispatch
=head1 Synopsis
A classic CGI script:
use strict;
use warnings;
use CGI;
use CGI::Application::Dispatch;
# ---------------------
my($cgi) = CGI -> new();
CGI::Application::Dispatch -> dispatch
(
args_to_new => {QUERY => $cgi},
prefix => 'CGI::Application::Demo::Dispatch',
table =>
[
'' => {app => 'Menu', rm => 'display'},
':app' => {rm => 'initialize'},
':app/:rm' => {},
],
);
A Plack script:
#!/usr/bin/env perl
#
# Run with:
# starman -l 127.0.0.1:5021 --workers 1 httpd/cgi-bin/cgi/application/demo/dispatch/dispatch.psgi &
# or, for more debug output:
# plackup -l 127.0.0.1:5021 httpd/cgi-bin/cgi/application/demo/dispatch/dispatch.psgi &
use strict;
use warnings;
use CGI::Application::Dispatch::PSGI;
use Plack::Builder;
# ---------------------
my($app) = CGI::Application::Dispatch -> as_psgi
(
prefix => 'CGI::Application::Demo::Dispatch',
table =>
[
'' => {app => 'Menu', rm => 'display'},
':app' => {rm => 'initialize'},
':app/:rm' => {},
],
);
builder
{
enable "Plack::Middleware::Static",
path => qr!^/(assets|favicon|yui)/!,
root => '/dev/shm/html';
$app;
};
A modern FCGI script:
use strict;
use warnings;
use CGI::Application::Dispatch;
use CGI::Fast;
use FCGI::ProcManager;
# ---------------------
my($proc_manager) = FCGI::ProcManager -> new({n_processes => 2});
$proc_manager -> pm_manage();
my($cgi);
while ($cgi = CGI::Fast -> new() )
{
$proc_manager -> pm_pre_dispatch();
CGI::Application::Dispatch -> dispatch
(
args_to_new => {QUERY => $cgi},
prefix => 'CGI::Application::Demo::Dispatch',
table =>
[
'' => {app => 'Menu', rm => 'display'},
':app' => {rm => 'initialize'},
( run in 0.992 second using v1.01-cache-2.11-cpan-e93a5daba3e )