This document summarizes a presentation about a new way of developing Perl applications and the future of gperl, a fast Perl-like language. It discusses compiler modules for lexical analysis, parsing, and code generation that were originally developed for gperl and can now be used to build various tools and applications. These include a transpiler to run Perl 5 code in web browsers, a framework called PerlMotion for building iOS and OSX apps with Perl, and a static analysis tool for detecting copied code. The presentation encourages contributions to related open source projects and outlines plans to expand the capabilities of the static analysis and type inference engines.
This document summarizes a presentation given by Ryosuke IWANAGA about Perl tools he has created for operations tasks. It introduces tools like CloudForecast for server resource monitoring, GrowthForecast for graphing RRD data, App::Ikachan for posting IRC notices, and his in-development configuration management tool called Touryo. The presentation emphasizes that Perl is well-suited for creating lightweight, testable system utilities and encourages attendees interested in development to contact the presenter or DeNA.
67. Request Parameters
get '/' => sub {
my $id = param 'id';
};
post '/' => sub {
my $id = param 'id';
my $file = upload('file');
# Dancer::Request::Upload object
$file->copy_to('/path/to/flie');
};
68. Request Parameters
# GET /entry/foo?id=bar
get '/entry/:id' => sub {
my $id = param 'id';
# $id => foo
};
# 追記 paramsを使えばデータソース別に取れます
# perldoc Dancer::Request
# Fetching_only_params_from_a_given_source
69. Config
set 'tmdpir' => '/tmp/myapp';
get '/' => sub {
my $config = config;
return $config->{appname};
};
70. Cookie
get '/login' => sub {
my $id = param 'id';
my $password = param 'password';
if ( $id eq 'cto'
&& $password eq 'onagatani' )
{
cookie 'logged_in' => 1;
redirect '/';
}
};
71. Session
set session => 'YAML';
set session_dir => '/tmp/sessions';
set session_name => 'sid';
# default dancer.session
get '/login' => sub {
my $id = param 'id';
my $password = param 'password';
if ( $id eq 'cto'
&& $password eq 'onagatani' ) {
session 'user' => { name => 'onagatani' };
redirect '/';
}
};
72. Template
set template => ‘template_toolkit’;
get '/' => sub {
my $id = param 'id';
template 'index', { id => $id };
};