Mojolicious - Perl 的 Web 编程框架


Artistic
跨平台
Perl

软件简介

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 %>.