ヒアドキュメント

ヒアドキュメント

ヒアドキュメントについて

複数行にわたる文字を表示する場合、これまでは以下のようにプログラムを書いてきました。

#!/usr/local/bin/perl

print "Content-Type: text/html; charset=Shift_JIS\n\n";
print "<html>";
print "<head><title>サンプル</title></head>";
print "<body>";
print "<p>初めてのCGI。</p>";
print "</body>";
print "</html>";

exit;

このままでも問題ないのですが、print と何度も書く必要があったり、特定の文字をエスケープする必要があったり…と少々面倒です。

こんな場合、ヒアドキュメントを利用すれば、以下のようにスッキリ書くことができます。

#!/usr/local/bin/perl

print <<"HTML";
Content-Type: text/html; charset=Shift_JIS

<html>
<head><title>サンプル</title></head>
<body>
<p>初めてのCGI。</p>
</body>

</html>
HTML

exit;

このように記述すると、print <<"HTML"; から HTML の間に書かれた文字すべてが、print で出力する対象になります。

print <<"HTML"; は「HTML という文字だけが書かれた行が来るまで表示する」という意味になります。HTML の部分には、任意の文字を使用することができるため、一例ですが以下のように書くこともできます。

#!/usr/local/bin/perl

print <<"_END_";
Content-Type: text/html; charset=Shift_JIS

<html>
<head><title>サンプル</title></head>
<body>
<p>初めてのCGI。</p>
</body>

</html>
_END_

exit;

うまく利用すると、プログラムの可読性を向上させる事ができます。