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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「デバイスは PRN を初期化でき...
-
bad interpreter:エラーについて
-
例外処理のフローチャートの記...
-
エクセルVBAでシートモジュール...
-
Excel VBAで、ユーザーフォーム...
-
VBAで別モジュールへの変数の受...
-
グラフのX,Y座標を取得したい
-
Cからシェルを起動し返り値をハ...
-
VBAで旧字体を異字体に一括で変...
-
acwzlibとは?
-
Perl モジュールのアンインスト...
-
ユーザー定義関数に#NAME?が返...
-
ExcelVBA AddinでOnAction
-
YAMLについて
-
VBSがコンパイルエラーになりま...
-
VBA ユーザーフォーム Image1 ...
-
CPANモジュール取得におけるmak...
-
LCD ディスプレイを Raspberry ...
-
【vba】フォームに書いてあ...
-
ベースモジュールって?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「デバイスは PRN を初期化でき...
-
「Perl Command Line InterPret...
-
「jcode.pl」というファイルは...
-
皆さんは、LinuxでPerlのバージ...
-
DBD-ODBCのインストールができ...
-
perlでdialogのフォルダ指定
-
windows環境でのperlのパス
-
so-netのサーバー設定
-
Perlのライブラリのパスの設定...
-
ActivePerlでWindows上のパスを...
-
activeperlでDBD-Pgを扱うと、p...
-
ファイルの読み込み操作のコー...
-
サーバ側プログラム言語について
-
#!/usr/local/bin/perlで命令が...
-
CGI(Perl)について、間違いがあ...
-
CPANのrenameについて
-
#!/usr/bin/perlで書きだしたCG...
-
CGIの使い方について教えて...
-
CGI がローカルで動作しない。
-
perl が 実行できない
おすすめ情報