Subscribed unsubscribe Subscribe Subscribe

初めてのPlack

初めてのnode.js - 葉っぱ日記 に便乗しまして。
Perlの世界では、2009年秋くらいから「PSGI」という仕様が作られていまして、いまやPerlでWebサーバを作る際の標準インターフェースとなっております。
PSGI/Plack - Perl Superglue for Web Frameworks and Web Servers
第1回 PSGI/Plack―フレームワークとサーバをつなぐエンジン (1):Perl Hackers Hub|gihyo.jp … 技術評論社


とりあえず、教科書どおりに簡単なWebサーバを作ってみます。

''=~(('(').('.'^'~'^(''=='').''^'^').('='^'^'^')'^(''=='').'').((''=='').''^'='^'~').('('^'='^'.'^'^').('='^'('^'.'^(''=='').''^'~').('='^'~'^')'^'.'^(''=='').'').('~'^(''=='').''^'=').('('^')'^(''=='').''^'^').('^'^'~').(')'^'='^'('^'~'^(''=='').'').('~'^(''=='').''^')'^'='^'.').('('^'='^')'^'^').('^'^(''=='').''^')'^'=').((''=='').''^'='^'~'^')').('.'^'('^')'^'~'^'^'^'=').((''=='').''^'('^')').('('^')'^(''=='').'').('='^'^'^'~'^(''=='').'').(')'^'~'^(''=='').''^'=').('.'^'='^'~'^')'^(''=='').''^'(').('^'^'~'^(''=='').''^'=').((''=='').''^'~'^'='^')').((''=='').''^'='^'.').('~'^(''=='').''^')'^'.').('.'^'='^'^'^'(').('='^'~'^'('^')'^'.').('('^')'^'~'^'.'^'=').((''=='').''^'^').('^'^'~').(')'^'~').((''=='').''^'^').('~'^(''=='').''^'=').(')'^'='^'~'^'.'^'(').('='^')'^'.'^'^').('.'^'='^(''=='').'').('='^(''=='').''^')'^'('^'~'^'.').((''=='').''^'('^'.'^'~'^')'^'=').('^'^(''=='').''^'('^'.'^'='^')').('='^'('^'.'^')'^'^'^(''=='').'').(')'))

https://gist.github.com/820557
このコードを'app.psgi'として保存し、plackupコマンドで動かしてみましょう。

$ plackup app.psgi &
HTTP::Server::PSGI: Accepting connections at http://0:5000/
$ wget localhost:5000 -q -O -
Hello World

ね、簡単でしょう?*1
node.jsのものと違って7種類もの記号を要してしまいますが、比較的簡潔に記述できているのではないでしょうか。

*1:@さん アドバイスありがとうございました ><