ヒアドキュメント(perl)について
geepleng
1999/11/15(月) 07:53:24
ヒアドキュメントについてお尋ねします
サーバーによって ” でエラーがでたり ’ でエラーがでたり 何も囲まなくても
通ったりと少し戸惑っているのですが正しい使い方を教えて下さい。
そしてその際 Contnt-type・・・・ はヒアドキュメントの前で出力するのか
後でも良いのか、についてもお願いします。
Content-type: text/html
print <<"HERE";
Content-type: text/html
print <<'HERE';
print <<'HERE';
Content-type: text/html
print <<HERE;
Content-type: text/html
サーバによってエラーが出たりでなかったりするので
その時々に応じてクォーテーションを付けたり外したりしています。
-wcでエラー内容も見ているのですが、イマイチ正確な方法が解りません。
本等でも,どのような時に” や ’ をつける等は記述されてないものが
多く困っています。
宜しくおねがいします。
andi
1999/11/15(月) 08:57:13
確かContent-typeを入れた場合に
改行二つ分入れなくてエラーになったことがありますが。
print <<;
Content-type:text/html
<html>
って感じで。
それかも。
ちゃいパパ
[HomePage]
1999/11/15(月) 09:31:07
>Content-type: text/html
>print <<"HERE";
>
と
>Content-type: text/html
>print <<'HERE';
>
はパールの構文的に間違いです!
Content-type: text/htmlはprint文で標準出力し、後ろに2つ以上改行が必要です。
>print <<'HERE';
>Content-type: text/html
>
はスカラー変数等が展開されません! ($AAA等がそのまま文字列で出力)
>print <<HERE;
>Content-type: text/html
>
これはとりあえずOKみたいですが、私は以下をお勧めします。
print <<"HERE";
B-Cus
1999/11/15(月) 20:49:47
> 本等でも,どのような時に” や ’ をつける等は記述されてないものが
> 多く困っています。
変数の展開という意味では、
print "..." と print <<"END" は同じ。
print "..." と print <<END は同じ。
print '...' と print <<'END' は同じ。