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 )