NAME

CGI::Application::Dispatch::Regexp - Dispatch requests to CGI::Application based objects using regular expressions

SYNOPSIS

use CGI::Application::Dispatch::Regexp;

CGI::Application::Dispatch::Regexp->dispatch(
    prefix  => 'MyApp',
    table   => [
        ''                                    => { app => 'Welcome',
                                                   rm  => 'start',
                                                 },
        qr|/([^/]+)/?|                        => { names => ['app'],
                                                 },
        qr|/([^/]+)/([^/]+)/?|                => { names =>
                                                     [qw(app rm)]
                                                 },
        qr|/([^/]+)/([^/]+)/page(\d+)\.html?| => { names =>
                                                     [qw(app rm page)]
                                                 },
    ],
);

DESCRIPTION

CGI::Application::Dispatch uses its own syntax dispatch table. CGI::Application::Dispatch::Regexp allows one to use flexible and powerful Perl regular expressions to transform a path into argument list.

DISPATCH TABLE

The dispatch table should contain list of regular expressions with hashref of corresponding parameters. Hash element 'names' is a list of names of regular expression groups. The default table looks like this:

table       => [
    qr|/([^/]+)/?|          => { names => ['app']      },
    qr|/([^/]+)/([^/]+)/?|  => { names => [qw(app rm)] },
],

Here's an example of defining a custom 'page' parameter:

qr|/([^/]+)/([^/]+)/page(\d+)\.html/?| => {
    names => [qw(app rm page)],
},

COPYRIGHT & LICENSE

Copyright Michael Peters and Mark Stosberg 2008, all rights reserved.

SEE ALSO

CGI::Application, CGI::Application::Dispatch