CGI ライブラリ - cgi-lib.pl
 
CGI を Perl で書く場合、環境変数とその値を連想配列(ハッシュ)にするのは常套手段ですが、 そのような決まりきった処理や何度も使う処理はサブルーチン化してライブラリにしておくと便利です。また、このようなライブラリは、インターネットからも入手することができます。その中の1つが cgi-lib.pl です。これはPerl4でも利用できます。

入手先: http://www.bio.cam.ac.uk/web/form.html
 

サブルーチンの解説

MethGet
機能 メソッドがGetかどうかを判定する。
書式 MethGet()
引数 なし
戻り値 GETメソッドの場合 True
PUTメソッドの場合 False

MethPost
機能 メソッドがPostかどうかを判定する。
書式 MethPost()
引数 なし
戻り値 PUTメソッドの場合 True
GETメソッドの場合 False

ReadParse
機能 CGIデータを解析し、連想配列(ハッシュ)にセットする。
書式 ReadParse(*data)
引数 data: 連想配列(ハッシュ)。引数なしの場合は配列名は in となる。
戻り値 必ず 1。

PrintHeader
機能 文字列 "Content-Type: text/html\n\n" を返す。
書式 PrintHeader()
引数 なし。
戻り値 文字列 "Content-Type: text/html\n\n"

HtmlTop
機能 HTMLのトップ部分を返す。
書式 HtmlTop(title)
引数 title: タイトル名
戻り値 HTMLのトップ部分

HtmlBot
機能 HTMLのボトム部分を返す。
書式 HtmlBot()
引数 なし。
戻り値 HTMLのボトム部分

MyBaseUrl
機能 ベースURLを返す。
書式 MyBaseUrl()
引数 なし。
戻り値 ベースURL

MyFullUrl
機能 フルURLを返す。
書式 MyFullUrl()
引数 なし。
戻り値 フルURL

PrintVariables
機能 CGI変数の出力。連想配列の内容をHTMLの定義リスト<DL>にして返す。
書式 PrintVariables(data)
引数 data: CGIデータが格納されている連想配列。または連想配列のグロブ。省略された場合は%inが使われる。
戻り値 出力内容。

PrintVariablesShort
機能 CGI変数の簡易出力。連想配列の内容をHTMLにして返す。
書式 PrintVariablesShort(data)
引数 data: CGIデータが格納されている連想配列。または連想配列のグロブ。省略された場合は%inが使われる。
戻り値 出力内容。

PrintEnv
機能 環境変数の出力。
書式 PrintEnv()
引数 なし。
戻り値 出力内容。

CgiError
機能 CGIエラーの出力。
書式 CgiErro(message)
引数 message: エラー内容を示すメッセージ。
戻り値 なし。

CgiDie
機能 CGIエラーを出力し終了する。
書式 CgiDie(message)
引数 message: エラー内容を示すメッセージ。
戻り値 なし。

インストール方法
ライブラリとして検索できるパス(特殊配列変数 @INC)に置きます。
 

サンプルプログラム
次のサンプルプログラムはメソッドとベースURL、フルURL、CGI変数、環境変数を表示します。

[サンプルプログラムの実行]
 
use_cgi_lib.cgi
#!/usr/bin/perl
#
# use_cgi_lib.cgi
#
# cgi-lib.pl の使用例
#
# (C)1999 Kaoru Fujita
#
use lib './lib';

require 'cgi-lib.pl';

ReadParse();

print PrintHeader();

if (MethGet()) {
        print 'GETメソッドです。<BR>'."\n";
}
else {
        print 'POSTメソッドです。<BR>'."\n";
}
print '<HR noshade width="100%">'."\n";

print "MyBaseUrl = ".&MyBaseUrl()."<BR>\n";
print "MyFullUrl = ".&MyFullUrl()."<BR>\n";
print '<HR noshade width="100%">'."\n";

print "CGI変数<BR>\n";
print PrintVariables();
print '<HR noshade width="100%">'."\n";

print "環境変数<BR>\n";
print PrintEnv();

exit(0);

#--End of use_cgi_lib.cgi



ファイル一覧

cgi-bin/use_cgi_lib.cgi
cgi-bin/lib/cgi-lib.pl