The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Mojolicious::Plugin::Mount - Application mount plugin


  # Mojolicious
  my $route = $app->plugin(Mount => {'/prefix' => '/home/sri/foo/script/foo'});

  # Mojolicious::Lite
  my $route = plugin Mount => {'/prefix' => '/home/sri/'};

  # Adjust the generated route and mounted application
  my $example = plugin Mount => {'/example' => '/home/sri/'};
  $example->to(message => 'It works great!');
  my $app = $example->pattern->defaults->{app};
  $app->config(foo => 'bar');

  # Mount application with host
  plugin Mount => {'' => '/home/sri/'};

  # Host and path
  plugin Mount => {'' => '/home/sri/'};

  # Or even hosts with wildcard subdomains
  plugin Mount => {'*' => '/home/sri/'};


Mojolicious::Plugin::Mount is a plugin that allows you to mount whole Mojolicious applications.

The code of this plugin is a good example for learning to build new plugins, you're welcome to fork it.

See "PLUGINS" in Mojolicious::Plugins for a list of plugins that are available by default.


Mojolicious::Plugin::Mount inherits all methods from Mojolicious::Plugin and implements the following new ones.


  my $route = $plugin->register(Mojolicious->new, {'/foo' => '/some/'});

Mount Mojolicious application and return the generated route, which is usually a Mojolicious::Routes::Route object.


Mojolicious, Mojolicious::Guides,