フリーCGIスクリプト配布サイト。
複数行にわたる文字を表示する場合、これまでは以下のようにプログラムを書いてきました。
#!/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;
うまく利用すると、プログラムの可読性を向上させる事ができます。