MojoliciousLite:  实时的web框架:
SYNOPSIS 简介:
 #  Automatically enables "strict", "warnings", "utf8" and Perl 5.10 features
    use Mojolicious::Lite;
  
       # Route with placeholder
        get '/api/:foo' => sub {
        my $c   = shift;
        my $foo = $c->param('foo');
        $c->render(text => "Hello from $foo.");
               };
  
                    # Start the Mojolicious command system
        app->start;
zjzc01:/root/mojo# curl http://127.0.0.1:3000/api/xx
Hello from xx.
zjzc01:/root/mojo# curl http://127.0.0.1:3000/api/abc123
Hello from abc123.zjzc01:/root/mojo# 
描述:
Mojolicious::Lite 是一个微型实时框架:
Mojolicious::Lite  实现了下面的函数,自动导出。
any
my $route = any '/:foo' => sub {...};
  my $route = any '/:foo' => sub {...} => 'name';
  my $route = any '/:foo' => {foo => 'bar'} => sub {...};
  my $route = any '/:foo' => [foo => qr/\w+/] => sub {...};
  my $route = any ['GET', 'POST'] => '/:foo' => sub {...};
  my $route = any ['GET', 'POST'] => '/:foo' => [foo => qr/\w+/] => sub {...};
声明 route 为any 在Mojolicious::Routes::Route, 匹配所有的HTTP 请求方法或者all.
app
my $app=app;
返回Mojolicious::Lite 应用对象
  # Use all the available attributes and methods
  app->log->level('error');
  app->defaults(foo => 'bar');
del
  my $route = del '/:foo' => sub {...};
  my $route = del '/:foo' => sub {...} => 'name';
  my $route = del '/:foo' => {foo => 'bar'} => sub {...};
  my $route = del '/:foo' => [foo => qr/\w+/] => sub {...};
匹配DELETE 请求
get
  my $route = get '/:foo' => sub {...};
  my $route = get '/:foo' => sub {...} => 'name';
  my $route = get '/:foo' => {foo => 'bar'} => sub {...};
  my $route = get '/:foo' => [foo => qr/\w+/] => sub {...};
只匹配get请求
group 
  group {...}
开始一个route group
Routes:
Routes 只是对请求过来的路径指向不同的函数,可以在路径中包含不同的占位符,
传进来的一个参数是$c  是 Mojolicious::Controller 对象本身,它也包含着HTTP request和HTTP reponse的对象:
GET/POST 传进来的参数:
use Mojolicious::Lite;
# /foo?user=sri
get '/foo' => sub {
  my $c = shift;
  my $user = $c->param('user');
  $c->render(text => "Hello $user.");
};
app->start;