The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mojolicious::Guides::Cheatsheet - Reference

OVERVIEW

This document contains a concise all-purpose reference.

RESERVED STASH VALUES

Besides everything prefixed with mojo. there are a few stash values that are reserved for routes and the renderer.

action

    $r->route('/welcome')->to(action => 'hello');

Action to dispatch to.

app

    $r->route('/welcome')->to(app => MyApp->new);

Embedded application to dispatch to.

cb

    $r->route('/welcome')->to(cb => sub {...});

Callback to dispatch to.

class

    $r->route('/welcome')->to(class => 'Greeting');

Camelized alternative to controller.

controller

    $r->route('/welcome')->to(controller => 'greetings');

Controller to dispatch to.

data

    $self->render(data => 'raw bytes');

Turn raw bytes into a response.

exception

    <%= $exception %>

Mojo::Exception object for exception templates.

extends

    $self->render(extends => 'template');

Template to extend.

format

    $self->render(format => 'rss');

Format to render.

handler

    $self->render(handler => 'ep');

Handler to use for rendering.

inline

    $self->render(inline => '<%= 1 + 1%>');

Inline template to render.

json

    $self->render(json => {foo => 23});

Turn Perl structure into JSON response.

layout

    $self->render(layout => 'green');

Layout to render.

method

    $r->route('/welcome')->to(method => 'hello');

Alternative to action.

namespace

    $r->route('/welcome')->to(namespace => 'TestApp', method => 'lulz');

Namespace to dispatch to.

partial

    my $result = $self->render(partial => 1);

Return rendering result instead of turning it into a response.

path

    $r->route('/welcome')->to(path => '/test', app => MyApp->new);

Base path to use for dispatching to embedded applications.

status

    $self->render(status => 404);

Status code to use for rendered response.

template

    $self->render(template => 'bye');

Template to render.

text

    $self->render(text => 'Hello World!');

Turn characters into a response.

ENVIRONMENT VARIABLES

Many parts of Mojolicious can be tuned with environment variables. Debug environment variables are excluded because they are for developer use only.

MOJO_APP

Decides which Mojolicious or Mojo application will be used, should always contain a class name like MyApp, usually defaults to Mojo::HelloWorld.

    MOJO_APP=MyApp

MOJO_CA_FILE

The path to the TLS CA authority file, should always contain a path like /etc/tls/cacerts.pem. Note that IO::Socket::SSL must be installed for TLS support.

    MOJO_CA_FILE=/etc/tls/cacerts.pem

MOJO_CHUNK_SIZE

Chunk size used for IO operations in bytes, a bigger chunk size speeds up IO operations but will also use more memory, defaults to 262144.

    MOJO_CHUNK_SIZE=1024

MOJO_DNS_SERVER

DNS server to use for non-blocking lookups.

    MOJO_DNS_SERVER=8.8.8.8

MOJO_EPOLL

Force epoll mainloop for IO operations. Note that IO::Epoll must be installed for epoll support.

    MOJO_EPOLL=1

MOJO_HOME

Home directory for the Mojolicious application, should always contain a path like /home/sri/myapp.

    MOJO_HOME=/home/sri/myapp

MOJO_KQUEUE

Force kqueue mainloop for IO operations. Note that IO::KQueue must be installed for kqueue support.

    MOJO_KQUEUE=1

MOJO_LOG_LEVEL

Log level for the Mojolicious application, should contain a valid log level like debug or error.

    MOJO_LOG_LEVEL=debug
    MOJO_LOG_LEVEL=error

MOJO_MAX_LINE_SIZE

Maximum line size for HTTP message start lines and headers in bytes, defaults to 10240.

    MOJO_MAX_LINE_SIZE=2048

MOJO_MAX_MEMORY_SIZE

Maximum size in bytes for HTTP content to keep in memory, bigger content will be written to temporary files, defaults to 262144.

    MOJO_MAX_MEMORY_SIZE=2048

MOJO_MAX_MESSAGE_SIZE

Maximum size for HTTP messages in bytes, defaults to 5242880.

    MOJO_MAX_MESSAGE_SIZE=1024

MOJO_MAX_REDIRECTS

    MOJO_MAX_REDIRECTS=3

Maximum number of redirects Mojo::Client will follow, defaults to 0.

MOJO_MODE

Run mode for the Mojolicious application, should contain a valid mode like development or production.

    MOJO_MODE=development
    MOJO_MODE=production

MOJO_NO_BONJOUR

Disable Bonjour support. Note that Net::Rendezvous::Publish must be installed for Bonjour support.

    MOJO_NO_BONJOUR=1

MOJO_NO_IPV6

Disable IPv6 support, this might result in slightly better performance and less memory use. Note that IO::Socket::IP must be installed for IPv6 support.

    MOJO_NO_IPV6=1

MOJO_NO_TLS

Disable TLS support, this might result in slightly better performance and less memory use. Note that IO::Socket::SSL must be installed for TLS support.

    MOJO_NO_TLS=1

MOJO_POLL

Force poll mainloop for IO operations, this should only be used for testing since other mainloops are generally faster and scale better.

    MOJO_POLL=1

MOJO_PROXY

Enable automatic HTTP and HTTPS proxy detection in Mojo::Client, for security reasons this is disabled by default.

    MOJO_PROXY=1

MOJO_RELOAD

Enable Mojolicious application reloading, changes to your application will be detected automatically so you don't have to restart the server manually.

    MOJO_RELOAD=1

MOJO_REVERSE_PROXY

Enable reverse proxy support for Mojolicious application.

    MOJO_REVERSE_PROXY=1

MOJO_STATIC_CLASS

Class the Mojolicious static file dispatcher should use to find DATA templates, defaults to main.

    MOJO_STATIC_CLASS=MyApp

MOJO_TEMPLATE_CACHE

Number of compiled templates to cache in memory, defaults to 100.

    MOJO_TEMPLATE_CACHE=20

MOJO_TEMPLATE_CLASS

Class the Mojolicious renderer should use to find DATA templates, defaults to main.

    MOJO_TEMPLATE_CLASS=MyApp

MOJO_TMPDIR

Directory for temporary files like huge uploads, by default a random platform specific temporary directory will be used.

    MOJO_TMPDIR=/tmp/mojo