cgiスクリプトは、自動応答に大変役立ちます!
cgiとperl
perlでの
cgiは古くから活用されているため、解説が数多くあります。
したがって、ここでは、良く利用されるperlのモジュールを紹介しました。
(1)Data::Dumper
Data::Dumperは、データ構造をわかりやすく、表示してくれるモジュールです。
#!/usr/bin/perl
use Data::Dumper;
$ref = [1..3];
print Dumper($ref);
使用例を次に示しました。
$VAR1 = [
1,
2,
];
(2)Template-ToolKit
Perlのポピュラーなテンプレートエンジンフレームワークです。
略してTT、あるいはTT2とも呼ばれています。
テンプレートライブラリとして、変数の置換えは元より、
ループ制御・分岐(if)・多分岐(swtchi)・例外(try)、
プラグイン等々の機能を持っています。
Template Toolkitを利用することで、
プログラムにおける出力の見た目に関するコードとロジックを分離することができ、
結果として保守性が高まります。
使用方法の例として
userオブジェクトのnameメソッドの結果は、テンプレートにより展開することができます。
具体的に、perlテンプレートの中で、次のように使用します。
My name is [% user.name %].
また、オブジェクトのメソッドと、ハッシュの値を同一の方法でアクセスすることができます。
my $user = {
name => 'pochi',
};
というハッシュも、上記の方法でアクセスすることができます。
ループを回す場合は、
[% FOREACH data IN datas %]
- このdatasの title は [% data.title %].
[% END %]
としてアクセスできます。
また、例えばHTMLエスケープ用フィルタは、
[% user.name | html %]
と書くことができます。
上記は、何れもテンプレートを使用してページを作成するものでした。
(3)HTML::Template
HTML::Templateとは、CGIスクリプトからHTMLテンプレートを使うためのPerlモジュールです。
最初にテンプレートを作ります。
例に示したように、 <TMPL_VAR> のような簡単な、特殊なタグが入った普通の HTML ファイルです。
例えば、 testx.tmpl として、次のファイルを作成します。
<html>
<head><title>Test of Template</title>
</head>
<body>
My Home Dir. : <TMPL_VAR NAME=HOME>
<br><br>
My Path Name : <TMPL_VAR NAME=PATH>
</body>
</html>
上記のHTMLファイルに対応するCGIプログラムを作成します。
#!/usr/bin/perl -w
use HTML::Template;
# OPEN html Template.
my $template = HTML::Template->new(filename => 'testx.tmpl');
# Parameters set.
$template->param(HOME => $ENV{HOME});
$template->param(PATH => $ENV{PATH});
# Print the template output.
print "Content-Type: text/html\n\n", $template->output;
●ブラウザを用い、作成した
cgiにアクセスすると、以下のような表示となります。
My Home Dir. : /home/directory
My Path Name : /bin/usr
サンプルcgi実行●●perlを使用した動きが分かったと思います。
[ 1 ] perlプログラムを起動させ、ページを作成する。
[ 2 ] 出来上がったページをユーザーへ送る。
この2段階を別々に分け、個別に実行するのがperlによる方式でした。
CGI BOY入門TOPへ