GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Mojolicious::Lite(3) User Contributed Perl Documentation Mojolicious::Lite(3)

Mojolicious::Lite - Micro real-time web framework

  # Automatically enables "strict", "warnings", "utf8" and Perl 5.16 features
  use Mojolicious::Lite -signatures;

  # Route with placeholder
  get '/:foo' => sub ($c) {
    my $foo = $c->param('foo');
    $c->render(text => "Hello from $foo.");
  };

  # Start the Mojolicious command system
  app->start;

Mojolicious::Lite is a tiny domain specific language built around Mojolicious, made up of only about a dozen Perl functions.

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!

While Mojolicious::Guides::Growing will give you a detailed introduction to growing a Mojolicious::Lite prototype into a well-structured Mojolicious application, here we have collected a few snippets that illustrate very well just how similar both of them are.

The functions "get", "post" and friends all have equivalent methods.

  # Mojolicious::Lite
  get '/foo' => sub ($c) {
    $c->render(text => 'Hello World!');
  };

  # Mojolicious
  sub startup ($self) {
  
    my $routes = $self->routes;
    $routes->get('/foo' => sub ($c) {
      $c->render(text => 'Hello World!');
    });
  }

The application object you can access with the function "app" is the first argument passed to the "startup" method.

  # Mojolicious::Lite
  app->max_request_size(16777216);

  # Mojolicious
  sub startup ($self) {
    $self->max_request_size(16777216);
  }

Instead of the "plugin" function you just use the method "plugin" in Mojolicious.

  # Mojolicious::Lite
  plugin 'Config';

  # Mojolicious
  sub startup ($self) {
    $self->plugin('Config');
  }

Similar to plugins, instead of the "helper" function you just use the method "helper" in Mojolicious.

  # Mojolicious::Lite
  helper two => sub ($c) {
    return 1 + 1;
  };

  # Mojolicious
  sub startup ($self) {
    $self->helper(two => sub ($c) {
      return 1 + 1;
    });
  }

Instead of sequential function calls, we can use methods to build a tree with nested routes, that much better illustrates how routes work internally.

  # Mojolicious::Lite
  under '/foo';
  get '/bar' => sub ($c) {...};

  # Mojolicious
  sub startup ($self) {

    my $routes = $self->routes;
    my $foo = $routes->under('/foo');
    $foo->get('/bar' => sub ($c) {...});
  }

Mojolicious::Lite implements the following functions, which are automatically exported.

  my $route = any '/:foo' => sub ($c) {...};
  my $route = any '/:foo' => sub ($c) {...} => 'name';
  my $route = any '/:foo' => {foo => 'bar'} => sub ($c) {...};
  my $route = any '/:foo' => [foo => qr/\w+/] => sub ($c) {...};
  my $route = any ['GET', 'POST'] => '/:foo' => sub ($c) {...};
  my $route = any ['GET', 'POST'] => '/:foo' => [foo => qr/\w+/] => sub ($c) {...};
  my $route = any ['GET', 'POST'] => '/:foo' => (agent => qr/Firefox/) => sub ($c) {...};

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 ($c) {...};
  my $route = del '/:foo' => sub ($c) {...} => 'name';
  my $route = del '/:foo' => {foo => 'bar'} => sub ($c) {...};
  my $route = del '/:foo' => [foo => qr/\w+/] => sub ($c) {...};
  my $route = del '/:foo' => (agent => qr/Firefox/) => sub ($c) {...};

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 ($c) {...};
  my $route = get '/:foo' => sub ($c) {...} => 'name';
  my $route = get '/:foo' => {foo => 'bar'} => sub ($c) {...};
  my $route = get '/:foo' => [foo => qr/\w+/] => sub ($c) {...};
  my $route = get '/:foo' => (agent => qr/Firefox/) => sub ($c) {...};

Generate route with "get" in Mojolicious::Routes::Route, matching only "GET" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.

  group {...};

Start a new route group.

  helper foo => sub ($c, @args) {...};

Add a new helper with "helper" in Mojolicious.

  hook after_dispatch => sub ($c) {...};

Share code with "hook" in Mojolicious.

  my $route = options '/:foo' => sub ($c) {...};
  my $route = options '/:foo' => sub ($c) {...} => 'name';
  my $route = options '/:foo' => {foo => 'bar'} => sub ($c) {...};
  my $route = options '/:foo' => [foo => qr/\w+/] => sub ($c) {...};
  my $route = options '/:foo' => (agent => qr/Firefox/) => sub ($c) {...};

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 ($c) {...};
  my $route = patch '/:foo' => sub ($c) {...} => 'name';
  my $route = patch '/:foo' => {foo => 'bar'} => sub ($c) {...};
  my $route = patch '/:foo' => [foo => qr/\w+/] => sub ($c) {...};
  my $route = patch '/:foo' => (agent => qr/Firefox/) => sub ($c) {...};

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 ($c) {...};
  my $route = post '/:foo' => sub ($c) {...} => 'name';
  my $route = post '/:foo' => {foo => 'bar'} => sub ($c) {...};
  my $route = post '/:foo' => [foo => qr/\w+/] => sub ($c) {...};
  my $route = post '/:foo' => (agent => qr/Firefox/) => sub ($c) {...};

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 ($c) {...};
  my $route = put '/:foo' => sub ($c) {...} => 'name';
  my $route = put '/:foo' => {foo => 'bar'} => sub ($c) {...};
  my $route = put '/:foo' => [foo => qr/\w+/] => sub ($c) {...};
  my $route = put '/:foo' => (agent => qr/Firefox/) => sub ($c) {...};

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 ($c) {...};
  my $route = under '/:foo' => sub ($c) {...};
  my $route = under '/:foo' => {foo => 'bar'};
  my $route = under '/:foo' => [foo => qr/\w+/];
  my $route = under '/:foo' => (agent => qr/Firefox/);
  my $route = under [format => ['json', 'yaml']];

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 ($c) {...};
  my $route = websocket '/:foo' => sub ($c) {...} => 'name';
  my $route = websocket '/:foo' => {foo => 'bar'} => sub ($c) {...};
  my $route = websocket '/:foo' => [foo => qr/\w+/] => sub ($c) {...};
  my $route = websocket '/:foo' => (agent => qr/Firefox/) => sub ($c) {...};

Generate route with "websocket" in Mojolicious::Routes::Route, matching only WebSocket handshakes. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information.

Mojolicious::Lite inherits all attributes from Mojolicious.

Mojolicious::Lite inherits all methods from Mojolicious.

Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.
2021-12-08 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.