• ベストアンサー

同じなのに結果が違う

PerlでCGIを作成しています。 今作成しているのはアクセスカウンタなのですが、本のとおりにまったく同じようにかいてもエラーが出てしまいます。 (「Internal Server Error」) 添付のCDのcgiを持ってくるときちんと表示されます。 でも中身を照らし合わせてもまったく同じなのです。 cgiにする前の「pl」ファイルの状態ではOKなのですが・・・。 これより前につくったおなじようなものでもまったく中身が同じなのに実行できず、 CDの中身の一部分(HTML部分)をコピーして貼り付けたらできるようになりました。 (今回のアクセスカウンタはHTML部分をコピーして貼り付けてもダメでした。) 一体何が(どこが)違うのでしょうか? #こんな説明でわかっていただけるかどうかわかりませんがよろしくお願いします。

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

  • ベストアンサー
  • CueCue
  • ベストアンサー率40% (86/214)
回答No.3

手打ちでは、同じに見えても間違えているということは良くあると思いますよ。エクセルで検証されたとのことですが、テキスト比較ツールで比較されてみてはいかがですか。参考URLなど。 下の方の回答にもあるように、全角/半角の違い、よく似た記号の打ち間違いに注意してください。

参考URL:
http://www.vector.co.jp/soft/win95/util/se113286.html
KODAMAR
質問者

お礼

とっても使えるソフトをご紹介いただきありがとうございます。 他のも何点か試してみたのですが、これに勝るものは今のところ出てこないもようです♪ そして、質問したことですが、おかげさまでできました。 一番下の改行が抜けていたんです。 なんだかこんなことで・・・と気が抜けてしまいました・・・。 お騒がせしてしまってすいませんでした。 今後ともよろしくお願いします。

KODAMAR
質問者

補足

回答ありがとうございます。 そうです!この参考URLにあるみたいなソフトを探していたんですよ~!! ありがとうございました!! それで、早速調べてみましたところ、やはり数点違うところがありました。 「これが原因か・・・」と思いながらすべて直してみたのですが、やはり実行されないんです!! 一体なぜなんでしょう?? これ以外にも何か原因があるんでしょうか? 何かおわかりでしたら再度ご回答お願いします!

その他の回答 (3)

  • oodaiko
  • ベストアンサー率67% (126/186)
回答No.4

私が思い付くことといったら ・パーミッションが違う。(777または707になっていますか) ・改行コードが違う。(UNIX改行コードにする必要があるかも知れません) ・文字コードが違う。(Shift-JISまたは Unicodeでは動かないかも知れません) ・ファイル名が違う。(拡張子はちゃんとついてますか。また拡張子がダブッてついていませんか) といったところです。 Windows上でこれらチェックする方法や変換する方法は存じませんのでKODAMARさん御自身でお調べ下さい。 またもうすこし細かい点をあげれば ・バックスラッシュ(\)(Winではこれも円記号に見えると思いますが)に全角円記号(¥)を使っていませんか。 ・見えないところに全角の空白が入っていませんか。 といったところですが、下の補足を見る限りこちらではなさそうですね。

KODAMAR
質問者

お礼

ご回答ありがとうございます。 現在はWindows上でローカルで試しているのでパーミッションは関係ないと思います。(あれっ?関係ありますか!?) ファイル名もちゃんとなっていました。 結局一番最後に改行が入っていなかったという本当につまらない(?)ことが原因でした。 でも今後もこのようなことがないとは限らないので、そのときは回答を参考にさせていただきます!! ご協力ありがとうございました。

回答No.2

ローカルの環境で、ということなのでひとつ参考までに。 そのローカル環境がどのようなものなのかわからないのですが・・・ WindowsにApacheをいれてローカル環境を作っている場合 一番最初の行で #!/usr/local/bin/perl などと 書いてあるはずですが、この部分に間違いはないでしょうか? 多少知っていればそんなこともないとは思いますが、 私も少し前にこのような下らない間違いをしましたので。

KODAMAR
質問者

お礼

回答ありがとうございます。 そこもちゃんと同じように設定してあるのにダメなんです・・・。 一体何が悪いんでしょう? もうわけわからなくなってきました(泣) このままCDのコピーを使えばラクなんですけどね・・・それじゃ自分のためにならないので、まだがんばります。 ありがとうございました。

KODAMAR
質問者

補足

回答ありがとうございます! 2つのファイルを見比べるソフトを使い、相違点を直して、やってみてもできなかったのですが、なんと! 一番下の行のあとに「改行」をしてなかったんです。 できたあとって「なんでこんなこと・・・」って思うんですけど、できるまですごく悩むんですよね。 なんだかお騒がせしてすいませんでした。。。 ご協力ありがとうございました!!

noname#25358
noname#25358
回答No.1

 その2つのプログラムは同じではありません。  どんなに同じに見えても、絶対にどこか違います。  俺もプログラム始めたてで本のプログラムのうちこみとかやってた頃は、「全く同じなのに」とか言って何時間も延々、泣きそうになりながらソースとにらめっことかしてました(笑)  とりあえず、余計なところに全角が混じってないか、何かを勝手に省略(または追加)してないか、転送するときにアスキーモードで転送しているか、などを確認してみてください。

KODAMAR
質問者

お礼

おかげさまでできました。 2つのファイルを見比べるソフトを使い、相違点を直し、やってみたところできなかったのですが、なんと! 一番下の行のあとに「改行」をしてなかったんです。 できたあとって「なんでこんなこと・・・」って思うんですけど、できるまですごく悩むんですよね。 ご協力ありがとうございました!!

KODAMAR
質問者

補足

回答ありがとうございます。 本当に私も泣きそうです・・一体何が違うというのか・・・。 一応違いを知るためにエクセルに1行ずつコピーして、if文で照らし合わせてみたのですが、違いがなかったんです。 if文でもわからないような違いなんでしょうか?? >転送するときにアスキーモードで転送しているか まだサーバーには送っていなくて、ローカルで確認中なので、これは多分大丈夫だと思います。 もうちょっとがんばってみようと思います。 仲間がいたようで(失礼!)ちょっと嬉しかったです。 ありがとうございましたm(_ _)m

関連するQ&A