SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

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 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK