We Wish You A Merry Chrismas
Advent Calendar大流行り
今年はPerlネタのAdvent Calendarが大流行りですね.miyagawaさんのPlack Advent Calendar Day 2の記事を見て,ちょっと試してみたのでそのメモです.
env.psgi
miyagawaさんの記事では
my $app = sub { my $env = shift; return [ 200, ['Content-Type' => 'text/plain'], [ "Hello stranger from $env->{REMOTE_ADDR}!"], ]; };
となっていたので,どんなエントリがあるのか全部出力させてみました.
environment: $VAR1 = { 'psgi.multiprocess' => '', 'SCRIPT_NAME' => '', 'SERVER_NAME' => 0, 'HTTP_ACCEPT_ENCODING' => 'gzip,deflate', 'HTTP_CONNECTION' => 'keep-alive', 'PATH_INFO' => '/', 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'REQUEST_METHOD' => 'GET', 'psgi.multithread' => '', 'HTTP_ACCEPT_CHARSET' => 'Shift_JIS,utf-8;q=0.7,*;q=0.7', 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; ja-JP-mac; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6', 'QUERY_STRING' => '', 'SERVER_PORT' => 5000, 'HTTP_CACHE_CONTROL' => 'max-age=0', 'HTTP_ACCEPT_LANGUAGE' => 'ja,en-us;q=0.7,en;q=0.3', 'REMOTE_ADDR' => '127.0.0.1', 'HTTP_KEEP_ALIVE' => '300', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'psgi.errors' => *::STDERR, 'REQUEST_URI' => '/', 'psgi.version' => [ 1, 0 ], 'psgi.url_scheme' => 'http', 'psgi.run_once' => '', 'HTTP_HOST' => 'localhost:5000', 'psgi.input' => \*{'Plack::Server::Standalone::$input'} };
色々沢山ありますね.ちなみに,これを出力させるスクリプトはこんな感じでした.
use Data::Dumper; my $app = sub { my $env = shift; return [ 200, [ 'Content-Type' => 'text/plain' ], ["environment: \n " . Dumper( $env )], ]; };
あれ,ストリームデータのときはどうやってデータを渡すんだろう.興味深いですね.