「覚え間違い」を教えてください!

#! /usr/local/bin/perl5

$fname="./maru.dat"

open(FH,"+<$fname");

flock(FH,2);

chomp($kazu=<FH>);

$kazu++;

seek FH,0,0;

print FH "$kazu\n";

close(FH);

exit;

これを実行するたびに
maru.datの中の数が1つ増えるようにしたいのです
そこで同じ階層のところに
count.cgiとして
上のような記述をして
実行をしたのですが
internalerrorが起こってしまうのです

どこがおかしいのか教えて下さい

A 回答 (4件)

Internal Server Errorですよね?


1であるperlへのパスの間違いは起きますが?
一般の方(CGIの設置で)の最も多いinternal Server Errorの原因はこのパスの間違いです。

2についてはOSにもよるので。
サーバのOSはなんですか?
実行環境を教えてください。
    • good
    • 0

うちのDebianで問題なく動きましたよ。



一行目は
#/usr/bin/perl

2行目の最後に;をつけましたが。
    • good
    • 0

 CGI として動かすのではなく、まずコンソールから Perlスクリプトとして動かす事でデバッグしてみてはどうでしょう?


 我ながら直接役立つアドバイスとは思えませんが、Internal Server Errorしか出ない CGI デバッグよりも、ずっとマシなデバッグが出来ると思います。
    • good
    • 0

とりあえずぱっと見て考えられる理由です



1.perlへのパスが間違っている
2.改行コードがおかしい
3.$fname="./maru.dat"にセミコロンがない
4."./maru.dat"がない。書き込み権限がない

とりあえずこの辺チェックしてみてください。

この回答への補足

1.internal・・・・・というエラーなので
  それはないと思います
2.改行コード?
  何を見ればよいですか?
3.つけましたがだめでした
4.あります

若干変更して実行すると

maru.dat内の「0」が1にならずに
変なものに変わっていました
????です

補足日時:2004/06/08 21:58
    • good
    • 0

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


おすすめ情報