Я думаю, что веб-фреймворк Perl с большинством Rails-подобной маршрутизации был бы Mojolicious
Создатель Mojolicious
написал отличную статью в блоге «Диспетчеры для чайников», в которой сравнивал основные веб-фреймворки Perl, Ruby & Python и рассказывал о том, что, по его мнению, было сделано с помощью маршрутизации. 1009 *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;
Существуют также другие платформы Perl, которые предоставляют прямой URL для маршрутизации действий:
Более полный список веб-фреймворков Perl можно найти в Perl5 wiki
А если у вас неблагоприятные рамки, взгляните на Plack
( также см. PSGI wikipedia) . Это то же самое, что Rack на 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' ]];
}
}
}
Затем используйте plackup above_script.psgi
, и все, и вы идете.