CGI
CGI プログラミング

ヒアドキュメント

ヒアドキュメントの記法は 複数行にわたる文章を出力するのに便利である. 下のプログラム部分を 実行してみよ.

print <<Section1;
This is the first line.
This is the second line.
Section1

この例の Section1 の部分の文字列を終端文字列という. 終端文字列は変数名と同様,ユーザが決める. print <<Section1 の次の行から引用が始まり, 引用開始に使った終端文字列だけからなる行があると, そこで引用は終了する.

デフォルトでは二重引用符と同じ引用となり,変数展開が行なわれる. 終端文字列を一重引用符で囲むことで一重引用符と同じ引用ができる. 二重引用符を明示的に指示することもできる. 次のプログラム部分を実行し,違いを確かめよ.

$a = "llama";
print <<"Section1";
The valiable is $a.
Section1
print <<'Section2';
The valiable is $a.
Section2

HTML 文書の生成など, 複数行に渡る文字列を出力する場合,個別の print 文を 書き連ねてもよいが,ヒアドキュメントを利用することもできる. 使いやすい方を利用せよ.

print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">\n';
print '<html lang="ja">\n';
print '<head>\n';
print <<'Section1';
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
Section1

変数展開を行いたい場合は 2 重引用符による引用を 行う必要があるが,$ などの文字をエスケープしなければならない ことに注意せよ.

my $repno = 1;
print "<title>shortreport $repno \"here-document\"</title>";

課題7

課題「htmlの生成」 を読んで課題7を提出しなさい.


Updated in November 27, 2018, index, Yamamoto Hiroshi