Mojo - Duct tape for the HTML5 web!
package MyApp; use Mojo::Base 'Mojo'; # All the complexities of CGI, PSGI, HTTP and WebSockets get reduced to a # single method call! sub handler { my ($self, $tx) = @_; # Request my $method = $tx->req->method; my $path = $tx->req->url->path; # Response $tx->res->code(200); $tx->res->headers->content_type('text/plain'); $tx->res->body("$method request for $path!"); # Resume transaction $tx->resume; }
A flexible runtime environment for Perl real-time web frameworks, with all the basic tools and helpers needed to write simple web applications and higher level web frameworks, such as Mojolicious.
See Mojolicious::Guides for more!
Mojo implements the following attributes.
my $home = $app->home; $app = $app->home(Mojo::Home->new);
The home directory of your application, defaults to a Mojo::Home object which stringifies to the actual path.
# Generate portable path relative to home directory my $path = $app->home->rel_file('data/important.txt');
my $log = $app->log; $app = $app->log(Mojo::Log->new);
The logging layer of your application, defaults to a Mojo::Log object.
# Log debug message $app->log->debug('It works!');
my $ua = $app->ua; $app = $app->ua(Mojo::UserAgent->new);
A full featured HTTP user agent for use in your applications, defaults to a Mojo::UserAgent object.
# Perform blocking request say $app->ua->get('example.com')->res->body;
Mojo inherits all methods from Mojo::Base and implements the following new ones.
my $tx = $app->build_tx;
Transaction builder, defaults to building a Mojo::Transaction::HTTP object.
my $hash = $app->config; my $foo = $app->config('foo'); $app = $app->config({foo => 'bar'}); $app = $app->config(foo => 'bar');
Application configuration.
# Remove value my $foo = delete $app->config->{foo};
$app->handler(Mojo::Transaction::HTTP->new);
The handler is the main entry point to your application or framework and will be called for each new transaction, which will usually be a Mojo::Transaction::HTTP or Mojo::Transaction::WebSocket object. Meant to be overloaded in a subclass.
sub handler { my ($self, $tx) = @_; ... }
my $app = Mojo->new;
Construct a new Mojo application. Will automatically detect your home directory if necessary and set up logging to log/mojo.log if there's a log directory.
log/mojo.log
log
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
To install Mojolicious, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious
CPAN shell
perl -MCPAN -e shell install Mojolicious
For more information on module installation, please visit the detailed CPAN module installation guide.