我已经习惯了Rails映射路线的方式或Django在路线上使用正则表达式的方式(在Django中并不期望,但这是我听说过的方式),以及他们如何使用永久链接的样式进行访问粒子网页。在Perl中可以做同样的事情吗?
最佳答案
我认为具有大多数类似Rails路由的Perl Web框架应该是Mojolicious
Mojolicious
的创建者确实写了一篇很棒的博客文章,名为“ Dispatchers for Dummy”,比较了主要的Perl,Ruby和Python Web框架,并强调了他认为自己在Mojolicious
上进行路由所做的改进。
不幸的是,上面的帖子不再在线了:(而是您必须满足Mojolicious::Guides::Routing
文档的要求。这是来自docs的路由示例:
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;
还有其他Perl框架,它们提供直接URL到操作路由:
Jifty
(使用漂亮的routing DSL)Dancer
(类似于Ruby Sinatra)Mojolicious::Lite
(同上)Squatting
(受Ruby Camping启发)Web::Simple
Perl web frameworks的更完整列表可以在Perl5 wiki上找到
如果您不利于框架,请查看
Plack
(另请参见PSGI维基百科)。这与Ruby上的Rack和Python上的WSGI相同。这是一个简单而肮脏的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' ]];
}
}
}
然后使用
plackup above_script.psgi
离开。关于ruby-on-rails - Perl中的Rails或Django样式路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3672462/