Mojolicious::Lite -- это микро веб-фреймворк, входящий в состав Mojolicious.
КРАТКИЙ ОБЗОР
# При загрузке Mojolicious::Lite активируются режимы "strict" и "warnings" use Mojolicious::Lite; # Маршрут с заполнителем get '/:foo' => sub { my $self = shift; my $foo = $self->param('foo'); $self->render(text => "Hello from $foo!"); }; # Запуск системы команд Mojolicious app->start;
Hello World!
Минимальное приложение типа "Hello World" выглядит примерно как приведено ниже, при загрузке Mojolicious::Lite автоматически включается действие прагм strict и warnings и портируется несколько функций, превращая сценарий в полнофункциональное веб-приложение.
#!/usr/bin/env perl use Mojolicious::Lite; get '/' => sub { shift->render(text => 'Hello World!') }; app->start;
Вызов app->start, который запускает систему команд Mojolicious, может быть настроен так, чтобы переопределить обычное использование @ARGV.
app->start('cgi');
Маршруты
Маршруты в основном просто изощренные пути, которые могут содержать различные типы заполнителей. $self является экземпляром Mojolicious::Controller, содержащий HTTP запрос и ответ.
# /foo get '/foo' => sub { my $self = shift; $self->render(text => 'Hello World!'); };
Имена маршрутов
У всех маршрутов могут быть ассоциированные с ними имена, это позволяет автоматически определять шаблоны и осуществлять обратную связь с url_for, link_to и form_for. Имена всегда являются последним аргументом, значение * значит, что имя равно маршруту без символов, не являющихся частью слова.
# / get '/' => 'index'; # /hello get '/hello' => '*'; Всего понемногу
Все эти возможности можно легко использовать вместе.
# /everything/*?name=* get '/everything/:stuff' => [stuff => qr/\d+/] => {stuff => 23} => sub { shift->render('welcome'); };