SAK 図書館

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

CGI-Perl 基礎実地編 - 実習3 (ヒアドキュメント)

■test03.cgi

------ ↓ ここから ↓ ------
#!/usr/local/bin/perl

#// 変数
  $msg1 = 'ヒアドキュメント';

#// HTML 出力 (ヒアドキュメント)
print << "END_OF_HTML";
Content-type: text/html

<HTML>
  <P>はじめての $msg1 ですのん。</P>
  <TABLE border="1" cellPadding="2" cellSpacing="1">
    <TR>
      <TD>1</TD>
      <TD>2</TD>
      <TD>3</TD>
      <TD>4</TD>
      <TD>5</TD>
    </TR>
    <TR>
      <TD>6</TD>
      <TD>7</TD>
      <TD>8</TD>
      <TD>9</TD>
      <TD>10</TD>
    </TR>
    <TR>
      <TD>11</TD>
      <TD>12</TD>
      <TD>13</TD>
      <TD>14</TD>
      <TD>15</TD>
    </TR>
  </TABLE>
</HTML>
END_OF_HTML

#// 終了
  exit(0);
------ ↑ ここまで ↑ ------

■解説

  ・この test03.cgi は、実行するとブラウザに
    「はじめての ヒアドキュメント ですのん。」と 1 〜 15 の数字が
    並んだテーブルが表示されます。
    ヒアドキュメント形式の出力は大量の HTML をレスポンスする際に便利です。

print << "END_OF_HTML";
      |_ ヒアドキュメント開始。
         END_OF_HTML がくるまで次の行から出力。

Content-type: text/html

|_ Content-type の下の空白行は、とても重要。
   この空白行で HTML ヘッダの終了とみなされます。
   HTML の <HEAD> とは別の意味です。

  <P>はじめての $msg1 ですのん。</P>
                |_ ヒアドキュメント中にも変数を埋め込むことができます。
                   逆に $ や @ が変数のはじまりと勘違いされますので、
                   文字として $ や @ を使いたいときは、
                   \$ や \@ を使わなければいけません。
                   更に、ヒアドキュメントはダブルコーテーション変換が
                   働くようなので、「表示」などの言葉を使うと \n に相当
                   するコードが含まれているため、化けます。
                   EUC コードで書けば良いと読みましたが、そんなの面倒な
                   ので「表示」「可能」など化ける言葉は別の表現に私は
                   しています。
                   どうしてものときは、一旦ヒアドキュメントを終了して、
                   print '表示...'; の形式で使うと良いです。

  <TABLE border="1" cellPadding="2" cellSpacing="1">
                |_ ヒアドキュメント中では " が普通に使えます。
                   基本的には HTML ソースそのものが直接書けます。

END_OF_HTML
|_ print << "END_OF_HTML"; と対になったヒアドキュメント終了宣言と
   なります。ヒアドキュメントは何度使っても良いです。
   また終了識別 "END_OF_HTML" は同じものを何度使用しても良いです。
   "HTML_NO_OWARI" と好きな識別子にしても良いです。

■補足

  ・Cookie の出力はヒアドキュメントでは、どうしてもうまくできません
    でした。私は Cookie 部分は print 文でやってます。

■実地

  ・test03.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-2025 Y.SAK