Bienvenido a los foros de Perl en Español, pinkfeet.
No conozco
CGI::Application::Plugin::Routes. Solo he usado
CGI::Application::Dispatch, y veo que es una forma cómoda de hacer el despacho de peticiones. Quizás el Routes tenga más posibilidades para rutas más complejas.
Este es un ejemplo con C:A:D. Se trata de un index.cgi, que carga nuestra CGI::Application, con el
runmode correcto.
Using perl Syntax Highlighting
#!/usr/bin/perl
#
# Joaquín Ferrero. 20110110
#
#use CGI qw(:html2 :html3 :html4 :form -newstyle_urls);
#use CGI::Carp qw(fatalsToBrowser);
use CGI::Application::Dispatch;
#use FindBin;
#use lib $FindBin::Bin;
# mod_rewrite alters the PATH_INFO by turning it into a file system path, so we repair it.
# necesitamos esto para que las funciones url() nos den un resultado correcto
$ENV{PATH_INFO} =~ s/^$ENV{DOCUMENT_ROOT}// if defined $ENV{PATH_INFO};
#my $query = new CGI;
#$query->charset('UTF-8');
CGI::Application::Dispatch->dispatch(
# debug => 1,
# prefix => '',
table => [
# 'vip' => { app => 'VayaDescuento', rm => 'vip' },
'ficha/:n/:p?' => { app => 'VayaDescuento', rm => 'ficha' },
'categoria/:c/:p?' => { app => 'VayaDescuento', rm => 'categoria' },
'contenido/:c' => { app => 'VayaDescuento', rm => 'contenido' },
'impresion/:n' => { app => 'VayaDescuento', rm => 'impresion' },
'confirmacion/:n' => { app => 'VayaDescuento', rm => 'confirmacion' },
'nuevoregistro' => { app => 'VayaDescuento', rm => 'nuevoregistro' },
'login' => { app => 'VayaDescuento', rm => 'login' },
'logout' => { app => 'VayaDescuento', rm => 'logout' },
'/:p?' => { app => 'VayaDescuento', rm => 'principal' },
],
# args_to_new => {
# QUERY => $query,
# },
);
Coloreado en 0.005 segundos, usando
GeSHi 1.0.8.4
Hay partes que están comentadas, porque, se han descartado con la evolución de la aplicación. Por ejemplo, la creación del objeto $query se trasladó a la propia aplicación, en lugar de pasarlo a través del despacho.