Neb*_*Fox 3 django perl routing ruby-on-rails url-routing
我已经习惯了Rails映射路由的方式或者Django在路由上使用正则表达式(我不期望在Django中,但这是我听说它是如何进行路由的)以及它们如何使用永久链接的样式来访问粒子网页.是否有可能在Perl中做同样的事情?
我认为具有大多数类似Rails的路由的Perl Web框架将是 Mojolicious
Mojolicious确实创建了一篇名为"Dispatchers for dummies"的优秀博客文章,比较了主要的Perl,Ruby和Python网页框架,并突出了他认为通过路由进行的改进Mojolicious.
不幸的是,上面的帖子不再在线:(相反,你必须满足于Mojolicious::Guides::Routing文档.这是一个来自文档的路由示例:
package MyApp;
use base 'Mojolicious';
sub startup {
my $self = shift;
# Router
my $r = $self->routes;
# Route
$r->route('/welcome')->to(controller => 'foo', action => 'welcome');
}
1;
Run Code Online (Sandbox Code Playgroud)
还有其他Perl框架提供动作路由的直接URL:
Jifty (使用一个很好的路由DSL)Dancer(Ruby Sinatra式)Mojolicious::Lite (同上)Squatting(灵感来自Ruby Camping)Web::Simple可以在Perl5 wiki上找到更完整的Perl Web框架列表
如果你是框架不利,那么看看Plack(也见PSGI维基百科).这是一样的机架上Ruby和WSGI Python的.
这是Plack的一个快速而肮脏的例子:
use 5.012;
use warnings;
my $app = sub {
my $env = shift;
given ($env->{PATH_INFO}) {
return [ 200, [ 'Content-Type' => 'text/plain' ], [ 'Hello Baz!' ] ]
when '/hello/baz';
default {
return [ 200, [ 'Content-Type' => 'text/plain' ], [ 'Hello World' ]];
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用plackup above_script.psgi并离开你去.