WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:DOS窓とブラウザでの表示の違い

haj [MAIL] [WriteDate : Fri Dec 22 22:01:33 2000]

お初にお目にかかります。

ANHTTPDとActivePerl5.6を使用してCGIを作成しているのですが、
DOS窓とブラウザでの表示が異なって表示されます。あと処理のされ方も若干違います。

例えば
$#log
の値が、ブラウザ上だと"5"なのですが
DOSだと"-1"となってしまいます。

これは何なのでしょうか?
よろしくお願いします。

Nobu3 [MAIL] [URL] [WriteDate : Fri Dec 22 23:50:11 2000]

やっぱりソースがないと話になりませんよ・・・。
@log=qw(1 2 3 4 5 6);
print $#log;

これでもなります?
うちではなりません。

haj [WriteDate : Sat Dec 23 00:01:30 2000]

ええと・・ソースは

open(READ,"log.txt");
@log_read = <READ>;
close(READ);

print $#log_read;

で、
log.txtの中身は

1
2
3
4
5

です。
これをDOS窓で実行すると"-1"と表示されてしまいます。

haj [WriteDate : Sat Dec 23 00:18:25 2000]

Nobu3さんの

@log=qw(1 2 3 4 5 6); 
print $#log; 

ではちゃんと動作します。

Nobu3 [MAIL] [URL] [WriteDate : Sat Dec 23 03:51:38 2000]

うーーーーん・・・。

たぶん、実行時のパスのせいじゃないかな?
DOSの時はファイルが読めてないと思う。
ファイルを絶対パス(ディレクトリのね)で指定したらどうでしょう?


haj [WriteDate : Sat Dec 23 10:41:57 2000]

ううむ・・・それでもなりますね・・・
上のを
open(READ,"C:\httpd131c\cgi-bin\haj\log.txt"); 
と変えても変わりませんし、
DOSのコマンドラインを
perlとスクリプトの両方フルパスで指定しても
変わらず"-1"となってしまいます。(涙

ちなみにpathは
C:\WINDOWS;C:\WINDOWS\COMMAND;c:\john-16\run;c:\perl\bin;C:\httpd131c\cgi-bin\haj;
です。

バギンズ [WriteDate : Sat Dec 23 14:11:46 2000]

問題の部分とは関係ないかもしれませんが、一応、「\」は「\\」って書きましょう。(^_^;)

問題の方ですが、Windows環境下で実行するなら。

print `type log.txt`;

とかでファイルの中身を見てみたり、

print `dir`;

とかでディレクトリを見てみたりでは?

haj [WriteDate : Sat Dec 23 18:58:50 2000]

!!
できました!
\を\\にしたらあっけなくできました。

どうもお騒がせしました。

Nobu3さん、バギンズさん、ありがとうございました。
また何かありましたらご教授よろしくお願いいたします。

ふじ [URL] [WriteDate : Sat Dec 23 20:00:58 2000]

> \を\\にしたらあっけなくできました。
結局ファイルを読めていなかったわけですよね。

open IN, "< hoge" or die "ファイルオープン失敗しました。 $!";

のように、常にチェックする癖をつけたほうがいいと思います。
# 青ラクダ本にも「システムコールの戻り値は必ずチェックせよ」と
# 3回も繰り返して書かれていることですし。


バギンズ [WriteDate : Sun Dec 24 03:03:50 2000]

>\を\\にしたらあっけなくできました。 
あれれ?
じゃあ、open(READ,"log.txt"); の方は何が原因でうまく動かなかったのでしょうか???

DOS窓でスクリプトを実行する際に、スクリプトのパスまで指定していたのでしょうか?

haj [WriteDate : Sun Dec 24 19:55:28 2000]

>DOS窓でスクリプトを実行する際に、スクリプトのパスまで指定していたのでしょうか? 

うっ・・。多分やってました。
DOS窓にファイルをD&Dしてましたので。
回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]