小さいCGI、しかし、現代


previous blog postで、Mojoliciousのようなフレームワークを使ってCGIスクリプトを書く現代の方法を探りました.しかし、コメントの中で指摘されているように、多くの利点にも関わらず、1つの重大な問題があります.実際にCGIサーバーに配備する必要がある場合、スクリプトが毎回読み込まれ、永続化されない場合、永続的なアプリケーションのために設計されたフレームワークは、各リクエストにオーバーヘッドを追加します.
CGIスクリプトは歴史的にCGIモジュールを使用して書かれています.しかし、このモジュールは大きくて、残酷で、それがremoved from Perl coreであるという重大なデザイン問題を持っています.
CGI::Tinyに入ります.これは1つだけのために構築されます:CGIプロトコルを提供する.ほとんどの場合、フレームワークはまだ正しい答えですが、実際のCGIプロトコル(共有されたWebホスティングなど)の下で実行させられるスクリプトの場合、またはスケールを必要としないCGIスクリプトをドロップする場合、CGI ::TinitはCGIに近代的な代替手段を提供します.PMあなたはinterface differences from CGI.pmまたはsuggested ways to extend CGI::Tiny scriptsを探検することができます.
以前のブログ記事の例では、CGI ::Tinitスクリプトと同等です.
#!/usr/bin/env perl
use strict;
use warnings;
use CGI::Tiny;

cgi {
  my $cgi = $_;
  my $input = $cgi->param('input');
  $cgi->render(json => {output => uc $input});
};