$ cpanp install Mojo ... no prereqs needed, so installation will be very fast ... $ mojolicious generate app MyMojoliciousApp [mkdir] /Users/sri/my_mojolicious_app/bin [write] /Users/sri/my_mojolicious_app/bin/mojolicious [chmod] my_mojolicious_app/bin/mojolicious 744 [mkdir] /Users/sri/my_mojolicious_app/lib [write] /Users/sri/my_mojolicious_app/lib/MyMojoliciousApp.pm [mkdir] /Users/sri/my_mojolicious_app/lib/MyMojoliciousApp [write] /Users/sri/my_mojolicious_app/lib/MyMojoliciousApp/Example.pm [mkdir] /Users/sri/my_mojolicious_app/t [write] /Users/sri/my_mojolicious_app/t/basic.t [mkdir] /Users/sri/my_mojolicious_app/public [write] /Users/sri/my_mojolicious_app/public/404.html [exist] /Users/sri/my_mojolicious_app/public [write] /Users/sri/my_mojolicious_app/public/index.html [mkdir] /Users/sri/my_mojolicious_app/templates/example [write] /Users/sri/my_mojolicious_app/templates/example/welcome.phtml $ cd my_mojolicious_app $ bin/mojolicious daemon Server available at http://127.0.0.1:3000. #### $ MOJO_RELOAD=1 bin/mojolicious daemon Server available at http://127.0.0.1:3000. #### package MyMojoliciousApp; use strict; use warnings; use base 'Mojolicious'; # This method will run for each request sub dispatch { my ($self, $c) = @_; # Try to find a static file $self->static->dispatch($c); # Use routes if we don't have a response code yet $self->routes->dispatch($c) unless $c->res->code; # Nothing found unless ($c->res->code) { $self->static->serve($c, '/404.html'); $c->res->code(404); } } # This method will run once at server start sub startup { my $self = shift; # The routes my $r = $self->routes; # Default route $r->route('/:controller/:action/:id') ->to(controller => 'example', action => 'welcome', id => 1); } 1; #### package MyMojoliciousApp::Example; use strict; use warnings; use base 'Mojolicious::Controller'; # This is a templateless action sub test { my ($self, $c) = @_; # Response object my $res = $c->res; # Code $res->code(200); # Headers $res->headers->content_type('text/html'); # Content my $url = $c->url_for; $url->path->parse('/index.html'); $res->body(qq/Forward to a static document.<\/a>/); } # This action will render a template sub welcome { my ($self, $c) = @_; # Render the template $c->render; } 1; #### % my $c = shift;

Welcome to the Mojolicious Web Framework!

This page was generated from a template at templates/example/test.phtml,
click here to move forward to a templateless action.