Home > Logs > November 2007 > This Entry

Perl におけるヒアドキュメントの、終了文字列による処理ルール

Perl のヒアドキュメントにおいては(他の言語はわかりませんが)、終了文字列をクォートで囲んだ場合には、そのクォートの種類(シングルクオート、ダブルクォート)に従って変数の展開処理が判断されます。


$str = 'たぬき';

print <<'EOF';    # シングルクォート
$str is Animal.
EOF
> $str is Animal.    # 変数展開されない

print <<"EOF";    # ダブルクォート
$str is Animal.
EOF
> たぬき is Animal.    # 変数展開される

ちなみに終了文字列をクオートで囲まない場合には、ダブルクオートした場合と同様に変数展開されます。

僕は何となく終了文字列をクオートしない習慣なのですが、ヒアドキュメント内のテキストにシンボルマークがあるかどうか判断できないくらい長いときなんかもあるかもしれないので、覚えておくと良いかもしれません。

Post Comment




Copyright © okayama, Powered by Movable Type Open Source