SAK 図書館
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 編資料