電子書籍の厳選無料作品が豊富!

perlの初心者です。下記のCGIを実行しましたが、全く表示しません。
最初の「環境変数」と言う文字も表示しません。
どこか初歩的なエラーがあると思いますが、わかりませんので質問させていただきます。
---
#!/usr/local/bin/perl

print "Content-type: text/html", "\n\n";

print "<HTML><BODY>", "\n";
print "<H1>環境変数</H1><HR>", "\n";

foreach my $key( keys %ENV ){
print "$key: $ENV{$key}<BR>", "\n";
}

print "<HR>", "\n";
print "</BODY></HTML>", "\n";

A 回答 (3件)

如何やら解決している様ですので、文字化け等が起きないようにする方法や、見やすくするための方法を書いておきます。



#!/usr/local/bin/perl
print "Cache-Control: no-cache\n";
print "Pragma: no-cache\n";
print "Content-Type: text/html;charset=Shift_JIS\n\n";
print <<"EOF";
<html>
<head>
<title>環境変数</title>
<meta http-equiv="Content-type" content="text/html;charset=Shift_JIS;">
</head>
<body>
<h1>環境変数</h1>
<hr>
EOF
foreach $key(keys %ENV){
print "$key: $ENV{$key}<br>\n";
}
print <<"EOF";
<hr>
</body>
</html>
EOF
exit;

参考になれば、幸いです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にさせていただきます。
特に文字化けはこれから、対処しようと思っていたところです。
ローカルがパソコン、サーバがUNIXのせいか、結構困っています。
また機会がありましたら、よろしくお願いします。

お礼日時:2011/03/18 13:04

・「#!/usr/local/bin/perl」このパスが正しいか確認してください。


・「print "Content-type: text/html", "\n\n";」ここを
「print "Content-type: text/html; charset=(文字コード)", "\n\n";」にしてみてください。

この回答への補足

パスは大丈夫でした。回答のように直して実行しました。表示は出力しました。
実はユーザごとにファイル名を変えたくて、REMOTE_IDENTを見たかったのですが、それは出力しませんでした。しかし当初の目的は達成できました。
ありがとうごじます。

補足日時:2011/03/15 01:04
    • good
    • 0
この回答へのお礼

今回のことで、目的まで少し前進しました。
ありがとうございます。・

お礼日時:2011/03/16 22:29

スクリプトには特に問題無いと思います。

(私なら、文字列と改行文字とを分けてカンマで区切らないで、一つの文字列にしてしまいますが)
出力されるHTMLはいろいろと問題がありますが、ブラウザがなんとかしてくれるレベルです。

疑わしいのは実行方法です。
どんな方法で実行していますか?

サーバー上で実行したのであれば、間違っていてもなんらかのエラーメッセージが表示されるはずです。

何も表示されない、ということからすると
パソコン上でファイル作成→それをそのままブラウザへドラッグ&ドロップ
とかやってませんか?

この回答への補足

早速の回答ありがとうございます。パソコン上にもperlの実行環境があるのですが、そこで実行すると表示します。そのファイルをperlのパスを直して、サーバに
アップロードして、CGIを実行させるHTMLファイルを作成して、テストしています。
何のエラー表示もなく、ただ表示しないという現象です。

補足日時:2011/03/15 00:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!