So-net無料ブログ作成
検索選択

ヒアドキュメントで問題発生! [基礎編]


自分の見た夢を共有できる海外の SNS を見たことがあります。
夢日記もつけられるし、他人の夢も検索できるし、夢辞典で分析もできるもの。
なんか日本でも流行りそうな気がするんだけど……。


Perl の演算子の勉強してたハズなんだけど、
またまた問題発生です(^^;)

文字コード設定の次は、ヒアドキュメントに悩まされてます↓
ヒアドキュメント

ヒアドキュメントには前にほんの少しだけ触れてます↓
リテラルについて

終端識別子(それとも終端文字列?どっちなんだろ……?)
を HERE_1 にするとしたら、

改行を維持したい長い文字列を
<<"HERE_1" と HERE_1 で囲むんです。

注意点がいくつかあります。

まず、最後の終端文字列の後に改行が必要です。

あと、初めの終端文字列の後にはセミコロンをつけるけど、
終わりの終端文字列の後には何もつかないです。

で、一体どんな問題が起こったかって話なんだけど、
改行がされないんですよ~(>_<)

少し複雑なコードを試してたので、今度は超シンプルなのでやってみます↓

#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";

print<<"HERE_1";
1番シンプルなパターンです。
できるかな~?
HERE_1

こうなりました……↓

1番シンプルなパターンです。できるかな~?

やっぱ改行されませんねぇ……。

ちょっと修整を加えてみました↓

#!/xampp/perl/bin/perl.exe

print<<"HERE_1";
Content-Type: text/html
1番シンプルなパターンです。
できるかな~?
HERE_1

こんな感じのエラーが出ました↓

Error message: malformed header from script.

やっぱ Content-Type の行をヒアドキュメントに入れるパターンは、
ヘッダがダメだってエラーが出ちゃうなぁ……

なんて思ってたら、Content-Type の行の下には
空白の行を入れなくてはいけないみたい。

で、修整したんだけど、結果はやっぱりこれ↓

1番シンプルなパターンです。できるかな~?

うーん(-_-)

先に進んでくうちに解決法が分かるかもしれないし、
とりあえず先に進もうと思います。


以下のページを参考にさせていただきました↓
Perl-第7回「演算子(1)」
CGI-Perl 基礎実地編 - 実習3 (ヒアドキュメント)
ヒアドキュメント - サンプルコードによるPerl入門
Perl - ヒアドキュメント
ありがとうございました<(_ _)>


ヒアドキュメントについてはこちらもどうぞ↓
ヒアドキュメントの問題解決!




nice!(0)  コメント(2) 

nice! 0

コメント 2

perlcodesample

HTMLで出力しているので改行は<br>ですよ。

print<<"HERE_1";
1番シンプルなパターンです。<br>
できるかな~?
HERE_1
by perlcodesample (2011-12-07 08:39) 

れい

perlcodesample 様

丁寧に教えていただき、ありがとうございます<(_ _)>
改行コードを入れたらできました。
本当にありがとうございました!
by れい (2011-12-07 23:21) 

コメントを書く

お名前:
URL:
コメント: