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 編資料