変数を展開しないヒアドキュメント

back
ヒアドキュメントにおける識別子は、クォート('"`)で囲んだ場合、
変数展開の動作が使ったクォートによって変わる。
クォートを使わない場合は、ダブルクォートと同じになり、変数展開が行われる。

----
$str = 'uptime';

print <<EOL;
$str
pwd
aaa
EOL
print "----\n";
print <<'EOL';
$str
pwd
aaa
EOL
print "----\n";
print <<`EOL`;
$str
pwd
aaa
EOL
----

結果

uptime
pwd
aaa
----
$str
pwd
aaa
----
aaa: not found
 14:29:44 up  7:31,  7 users,  load average: 0.00, 0.00, 0.00
/home/hmiyazaki/work/prog/perl

ちなみに aaa の順序が変わっているのは、STDOUT でなく STDERR へ出力されていて、
順番が保持できないため(多分)

back