# Automatically enables "strict", "warnings", "utf8" and Perl 5.10 features
use Mojolicious::Lite;
# Route with placeholder
get '/:foo' => sub {
my $c = shift;
my $foo = $c->param('foo');
$c->render(text => "Hello from $foo.");
};
# Start the Mojolicious command system
app->start;
On Perl 5.20+ you can also use a "-signatures" flag to enable support for subroutine signatures.
use Mojolicious::Lite -signatures;
get '/:foo' => sub ($c) {
my $foo = $c->param('foo');
$c->render(text => "Hello from $foo.");
};
app->start;
See Mojolicious::Guides::Tutorial for more!
# Mojolicious::Lite
get '/foo' => sub {
my $c = shift;
$c->render(text => 'Hello World!');
};
# Mojolicious
sub startup {
my $self = shift;
my $routes = $self->routes;
$routes->get('/foo' => sub {
my $c = shift;
$c->render(text => 'Hello World!');
});
}
# Mojolicious::Lite
app->max_request_size(16777216);
# Mojolicious
sub startup {
my $self = shift;
$self->max_request_size(16777216);
}
# Mojolicious::Lite
plugin 'Config';
# Mojolicious
sub startup {
my $self = shift;
$self->plugin('Config');
}
# Mojolicious::Lite
helper two => sub {
my $c = shift;
return 1 + 1;
};
# Mojolicious
sub startup {
my $self = shift;
$self->helper(two => sub {
my $c = shift;
return 1 + 1;
});
}
# Mojolicious::Lite
under '/foo';
get '/bar' => sub {...};
# Mojolicious
sub startup {
my $self = shift;
my $routes = $self->routes;
my $foo = $routes->under('/foo');
$foo->get('/bar' => sub {...});
}
my $route = any '/:foo' => sub {...};
my $route = any '/:foo' => sub {...} => 'name';
my $route = any '/:foo' => {foo => 'bar'} => sub {...};
my $route = any '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = any ['GET', 'POST'] => '/:foo' => sub {...};
my $route = any ['GET', 'POST'] => '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = any
['GET', 'POST'] => '/:foo' => (agent => qr/Firefox/) => sub {...};
Generate route with ``any'' in Mojolicious::Routes::Route, matching any of the listed HTTP request methods or all. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.
my $app = app;
Returns the Mojolicious::Lite application object, which is a subclass of Mojolicious.
# Use all the available attributes and methods
app->log->level('error');
app->defaults(foo => 'bar');
my $route = del '/:foo' => sub {...};
my $route = del '/:foo' => sub {...} => 'name';
my $route = del '/:foo' => {foo => 'bar'} => sub {...};
my $route = del '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = del '/:foo' => (agent => qr/Firefox/) => sub {...};
Generate route with ``delete'' in Mojolicious::Routes::Route, matching only "DELETE" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.
my $route = get '/:foo' => sub {...};
my $route = get '/:foo' => sub {...} => 'name';
my $route = get '/:foo' => {foo => 'bar'} => sub {...};
my $route = get '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = get '/:foo' => (agent => qr/Firefox/) => sub {...};
Generate route with ``get'' in Mojolicious::Routes::Route, matching only "GET" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.
group {...};
helper foo => sub {...};
Add a new helper with ``helper'' in Mojolicious.
hook after_dispatch => sub {...};
Share code with ``hook'' in Mojolicious.
my $route = options '/:foo' => sub {...};
my $route = options '/:foo' => sub {...} => 'name';
my $route = options '/:foo' => {foo => 'bar'} => sub {...};
my $route = options '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = options '/:foo' => (agent => qr/Firefox/) => sub {...};
Generate route with ``options'' in Mojolicious::Routes::Route, matching only "OPTIONS" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.
my $route = patch '/:foo' => sub {...};
my $route = patch '/:foo' => sub {...} => 'name';
my $route = patch '/:foo' => {foo => 'bar'} => sub {...};
my $route = patch '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = patch '/:foo' => (agent => qr/Firefox/) => sub {...};
Generate route with ``patch'' in Mojolicious::Routes::Route, matching only "PATCH" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.
plugin SomePlugin => {foo => 23};
Load a plugin with ``plugin'' in Mojolicious.
my $route = post '/:foo' => sub {...};
my $route = post '/:foo' => sub {...} => 'name';
my $route = post '/:foo' => {foo => 'bar'} => sub {...};
my $route = post '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = post '/:foo' => (agent => qr/Firefox/) => sub {...};
Generate route with ``post'' in Mojolicious::Routes::Route, matching only "POST" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.
my $route = put '/:foo' => sub {...};
my $route = put '/:foo' => sub {...} => 'name';
my $route = put '/:foo' => {foo => 'bar'} => sub {...};
my $route = put '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = put '/:foo' => (agent => qr/Firefox/) => sub {...};
Generate route with ``put'' in Mojolicious::Routes::Route, matching only "PUT" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.
my $route = under sub {...};
my $route = under '/:foo' => sub {...};
my $route = under '/:foo' => {foo => 'bar'};
my $route = under '/:foo' => [foo => qr/\w+/];
my $route = under '/:foo' => (agent => qr/Firefox/);
my $route = under [format => 0];
Generate nested route with ``under'' in Mojolicious::Routes::Route, to which all following routes are automatically appended. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.
my $route = websocket '/:foo' => sub {...};
my $route = websocket '/:foo' => sub {...} => 'name';
my $route = websocket '/:foo' => {foo => 'bar'} => sub {...};
my $route = websocket '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = websocket '/:foo' => (agent => qr/Firefox/) => sub {...};
Generate route with ``websocket'' in Mojolicious::Routes::Route, matching only WebSocket handshakes. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.