Mojolicious 是下一代的 Perl 语言的 Web 编程框架,提供强大的功能而无需第三方包依赖,功能包括:RESTful 的路由、插件管理、Perl风格的模板系统、会话管理、签名的 cookie、静态文件服务、测试框架、文件级的Unicode支持等等。
同时 Mojolicious 也是一个全堆栈的 HTTP/1.1 和 WebSocket 的客户端和服务器端的实现,还包括 TLS、Gonjour、IDNA、Comet、Chunking和 multipart支持。内建支持 Linux epoll、kqueue以及Unix Domain套接字的Web服务器。自动检测 CGI, FastCGI, 和 PSGI。提供 JSON 以及 XML/HTML5 的解析器,支持 CSS3 的选择器。
示例代码:
use Mojolicious::Lite; # Simple plain text response get '/' => {text => 'I ♥ Mojolicious!'}; # Route associating "/time" with template in DATA section get '/time' => 'clock'; # Scrape information from remote sites post '/title' => sub { my $c = shift; my $url = $c->param('url') || 'http://mojolicio.us'; my $title = $c->ua->get($url)->res->dom->at('title')->text; $c->render(json => {url => $url, title => $title}); }; # WebSocket echo service websocket '/echo' => sub { my $c = shift; $c->on(message => sub { my ($c, $msg) = @_; $c->send("echo: $msg"); }); }; app->start; __DATA__ @@ clock.html.ep % use Time::Piece; % my $now = localtime; The time is <%= $now->hms %>.