perlのファイル読み込み操作についての質問です
#!/usr/local/bin/perl
#ファイルの読み込み
open(FILE,"<diary.txt");
$data = <FILE>;
close(FILE);
#サーバー出力
print <<END;
Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>ファイルの読み込み</title>
</head>
<body>
<h5>
<p>$data</p>
</h5>
</body>
</html>
END
次のように、perlのコードを書いて無料の
CGIの使えるレンタルサーバーに
設置したところ、エラーが出てしまいます
dairy.txtはこのファイルと同じディレクトリで
パスも間違えてないです、いろいろ自分で調べてみたんですが
どこが間違えているかわかりません
よろしかったらどなたかperlに詳しい方がいらっしゃったら
間違えている箇所を教えていただけないでしょうか?
No.3ベストアンサー
- 回答日時:
もしかすると ANo.2 の方のご指摘で動作しているのかも知れないですが
> サーバーで指定されたパスを入力しているので
> perlのパスは間違ってないと思います
> パーミッションの設定も755と指定されており
> そうしているので、間違ってないはずです
> txtファイルは644と指定されてるので
> そうしているのですがなぜかエラーが出てしまいます・・
となると、他に考えられるのは FTP での転送モードでしょうか?
Windows の改行コードは CR(0x0d)+LF(0x0a)
UNIX 系の改行コードは LF(0x0a)
UNIX 系のサーバだと改行コードに CR が入っていると先頭部分の処理用
プログラムの指定部分で
/usr/local/bin/perl: bad interpreter: No such file or directory
というエラーが発生しているのではないでしょうか?
それは CR という改行コードも文字列の「^M」として扱い
/usr/local/bin/perl^M
と解釈される訳で、「/usr/local/bin/perl」が見つからないということに
なると思われます。
FTP 転送にどんなものを使われているかの記述がないので細かいことは
言えませんが、ASCII(アスキー)、BINARY(バイナリ)とかの転送モードが
異なっているのではないでしょうか?
回答ありがとうございます
モードはアスキーモードで転送していました
色々調べた結果
ヒアドキュメントの後に
exit(0);
とつけるとうまく表示することができました
No.2
- 回答日時:
「Hello World!」のような簡単なものはサーバで動作確認されていますね?また、ENDの行は「改行」で終わっていますか?
それ以外の文法的な問題などはないです。
No.1
- 回答日時:
久しく、Perlは使っていないので、「#ファイルの読み込み」の所を、実際に試してみましたが、そのままでうごきそうですねー。
第一ファイルがなくても、動くし。
『#!/usr/local/bin/perl』や『#!/usr/bin/perl』がサーバにあっていないとか。
CGIを置ける位置が違うとかなのかな?
cgi/”CGIはこの中だけ”とか。
ローカルサーバで試してみたと思うので、サーバ上の設定をチェックしてみてくださいね。
初歩的なことが速く解決するといいですね。
この回答への補足
回答ありがとうございます
サーバーで指定されたパスを入力しているので
perlのパスは間違ってないと思います
パーミッションの設定も755と指定されており
そうしているので、間違ってないはずです
txtファイルは644と指定されてるので
そうしているのですがなぜかエラーが出てしまいます・・
色々調べてはいるんですが原因がわかりません・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「デバイスは PRN を初期化でき...
-
#!/usr/bin/perlで書きだしたCG...
-
bad interpreter:エラーについて
-
LCD ディスプレイを Raspberry ...
-
VBAでoutlook365が起動しません。
-
Excel VBA 定義されたプロージ...
-
Excel VBAで、ユーザーフォーム...
-
ArduinoのジャイロモジュールMP...
-
Excel VBA 標準モジュール内で...
-
エクセルVBAでシートモジュール...
-
VBAで別モジュールへの変数の受...
-
VBAで2重のDoLoop関数から抜け...
-
BASP21使用のメール送信でコマ...
-
VBAのバージョン管理
-
GOSUB命令とは
-
CGI::Carpを使っているのにInte...
-
Excel VBAで、ユーザーフォー...
-
pythonでファイル移動できません。
-
Excel VBA 『Call』で呼び出す...
-
現在アクティブなフォーム名を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「デバイスは PRN を初期化でき...
-
#!/usr/bin/perlで書きだしたCG...
-
「Perl Command Line InterPret...
-
DBD-ODBCのインストールができ...
-
Perlの実行パスを自動で変更す...
-
【超初心者】異なるディレクト...
-
ActivePerlでWindows上のパスを...
-
「jcode.pl」というファイルは...
-
activeperlでDBD-Pgを扱うと、p...
-
初心者 CGIがうまく表示できな...
-
cpan2rpmでlibwww-perlをインス...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 定義されたプロージ...
-
例外処理のフローチャートの記...
-
ArduinoのジャイロモジュールMP...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBAでシートモジュール...
-
LCD ディスプレイを Raspberry ...
おすすめ情報