みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

なんで標準出力に出ないんだろう

初心者です。教えて下さい。
勉強のつもりで簡単なPerlプログラムを作ったんですが、これを実行するとダウンロードになっちゃうんだな
なんでだろ

#! /usr/local/bin/perl -w

use strict;

my $Agent_ID='PC';
my $Pass_Name='PC_index.html';
#####"この2行はあとで使おうと思って入れてあります"

print<<"EOM";

Content-type:text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>xxxxエンジニアリング</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META name="description" content="xxxxエンジニアリングのホームページです。">
<META name="keyword" content="xxxxエンジニアリング">
<META name="auther" content="xxxxエンジニアリング">


</HEAD>

<BODY bgcolor="skyblue">
ようこそ、xxxxエンジニアリングのホームページへ。<BR><BR>
</BODY>
</HTML>

EOM

1;

投稿日時 - 2009-09-21 19:15:09

QNo.5307951

困ってます

質問者が選んだベストアンサー

print<<"EOM";

Content-type:text/html
の間に空行を入れてはいけません。

Content-type の前に空行禁止というのは HTTP の決め事で、Perl の使い方の問題ではありません。 だから、もしこれだけで解決しない場合も、空行はとっておいてくださいね。

投稿日時 - 2009-09-22 09:54:57

お礼

正常に表示するようになりました。ありがとうございます。

実際のソースには、Content~の前にインデント用のタブも入っていました。空行と、タブを取り除いて、

print<<"EOM";
content-type:text/html

のようにContent~を行の先頭にしたところ表示するようになりました。

重複しますが、ありがとうございました。

投稿日時 - 2009-09-22 11:16:50

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

「ダウンロードになっちゃう」とは、正しく表現すると以下ですか。

「InternetExploreのダイアログ『ファイルのダウンロード-セキュリティの警告』が表示され、実行・保存・キャンセルのいずれかを選択するように求められる」

投稿日時 - 2009-09-21 23:13:07

補足

その通りです。昨日、初めて質問をしたので、書き方が至らなく申し訳ありません。

それで、
『ファイルのダウンロード-セキュリティの警告』で [保存]を選択してテンポラリの場所に書き込んでみると
print <<"EOM"; ~ EOM の間のステートメントがテキスト形式で書き込まれます。

別のPCで試してみても同じ結果になるので、Perlの書き方が悪いと思っているのですが・・・

よろしくお願いいたします。

投稿日時 - 2009-09-22 06:08:54

お礼

正常に表示するようになりました。ありがとうございます。

実際のソースには、Content~の前にインデント用のタブも入っていました。空行と、タブを取り除いて、

print<<"EOM";
content-type:text/html

のようにContent~を行の先頭にしたところ表示するようになりました。

重複しますが、ありがとうございました。

投稿日時 - 2009-09-22 11:13:43

あなたにオススメの質問