プロが教えるわが家の防犯対策術!

Win98SEのDOS窓で、たとえば perl -w a.cgi
というふうにするとエラーなどがDOS窓に出力されると思いますが、それがたくさんあるとスクロールして上のほうが見れないんですがどうすれば見れるのでしょうか?
>a.txt などと付け加えると処理結果(?)はファイルに出力されるのですが、エラーのメッセージなどはファイルに出力されません、DOS窓に表示されたままです。
よろしくお願いします。

A 回答 (2件)

perl -w a.cgi > err.txt


とすれば、画面の代わりにerr.txtに結果が書き込まれます

画面で確認したいのであれば
perl -w a.cgi | more

で一画面ごとに表示が止まり、何かキーを押すと
次の画面に移ります。

こんなところでしょうか?
参考まで
    • good
    • 0
この回答へのお礼

ご返答どうもありがとうございます。
moreを使うと一画面ごとに表示がとまりました。
しかし、エラー表示のときだけ2~3秒でページが自動的に切り替わってしまうんです。これは何かの陰謀なんでしょうか。

お礼日時:2001/03/02 01:12

エラーについては、標準出力(STDOUT)ではなく標準エラー出力(STDERR)に出力されてしまうので、DOS/Windows系の場合はコマンドラインから変更するのは難しいでしょう。


どうしてもファイル等に保存するのであれば、プログラム中でSTDERRの出力先をopenコマンドなどで変更してしまう(「open( STDERR, "> error.txt" );」のような形)しかないんじゃないでしょうか。試したことがないのでできるかどうかもわかりませんが。

むしろそれよりは、Perlのデバッグモードを使った方がいいんじゃないですか?
「perl -d a.cgi」というような形で起動できますし。コマンドの使い方はプロンプトで「h」で出力できます。
    • good
    • 0
この回答へのお礼

ご返答どうもありがとうございます。
上記のように「open( STDERR, "> error.txt" );」をスクリプトの2行目に入れてみました。結果はちゃんとファイルに出力されたのですが、-w をつけたとき、DOS窓では変数が一回しか使われていないときのエラーが表示されるのに対し、STDERRでファイルに出力した方ではそれが書かれていませんでした。定義していない変数の警告はどちらの方法でも出力されていました。
使い方等よくわかっていないのですが、これから試してみようと思います。
デバックモード・・・これもDOS窓だとスクロールして上の方が見えないような・・・といいますか、手軽にエラーを見るのが目的だったんです。ということで、ちょっとパス(汗)。ありがとうございます、いろいろ参考になりました。

お礼日時:2001/03/02 01:08

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