SAK 図書館
CGI-Perl 基礎実地編 - 実習10 (ユーザ関数)
■test10.cgi
------ ↓ ここから ↓ ------
#!/usr/local/bin/perl
#// HTML ヘッド出力
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<P>ユーザ関数テスト</P>\n";
#// 8 x 4 テーブル出力
WriteTable(8, 4);
#// 12 x 20 テーブル出力
WriteTable(12, 20);
#// HTML テイル出力
print "</HTML>\n";
#// 終了
exit(0);
#//=====================================================================
#// テーブル出力 (パラメタ $xmax = 列数, $ymax = 行数)
#//=====================================================================
sub WriteTable
{
my($xmax) = @_[0];
my($ymax) = @_[1];
my($x);
my($y);
my($i);
#// テーブル出力
print "<TABLE border=1 cellPadding=2 cellSpacing=1>\n";
for ($y = 0; $y < $ymax; $y++) {
print "<TR>\n";
for ($x = 0; $x < $xmax; $x++) {
$i = $y * $xmax + $x + 1;
print "<TD>";
print $i;
print "</TD>\n";
}
print "</TR>\n";
}
print "</TABLE>\n";
print "<BR>\n";
#// リターン
return;
}
------ ↑ ここまで ↑ ------
■解説
・この test10.cgi は、パラメタによってテーブル作成ユーザ関数を
2 度呼び出しています。
結果として、ブラウザに 8 x 4 と 12 x 20 のテーブルが表示されます。
■補足
・ユーザ定義関数は上手く使うとメインルーチンがすっきりします。
また、再生産性の上でも効果的です。
尚、ユーザ定義関数から戻り値を受け取ることもできます。
#// 8 x 4 テーブル出力
WriteTable(8, 4);
| | |_ テーブル行数
| |_ テーブル列数
|_ テーブル出力関数 (ユーザ定義関数)
#//=====================================================================
#// テーブル出力 (パラメタ $xmax = 列数, $ymax = 行数)
#//=====================================================================
sub WriteTable
| |_ ユーザ定義関数名
|_ ユーザ定義関数宣言
my($xmax) = @_[0];
| | |_ バラメタ 1 参照
| |_ バラメタ 1 を $xmax にセット
|_ ローカル変数宣言
my($x);
|_ ローカル変数宣言
メインルーチンで使用している変数と同じ名前でもローカル宣言すれば
別に扱えて便利。
ローカル宣言していない変数を関数内で使用する場合は、現在の値を壊
しても良いものかなど、注意する必要がある。
#// リターン
return;
|_ 関数を終了して呼び出された次のステップに戻る。
■実地
・test10.cgi も実際に作成してテストしてみましょう。
いろいろとテーブルのサイズを変えてみたりすると良いです。
■CGI-Perl 基礎実地編資料
■CGI-Perl 基礎編資料
■CGI-Perl 応用実地編資料
■PHP 基礎編資料
■PHP + MySQL 編資料