- 締切済み
コードを一行ずつ実行したい。
Perlで記述したCGIをブラウザ上で動かしてみるとうまく動かない。一行ずつ動かすことが出来たら、どこで可笑しなことになっているのか簡単にわかるのに・・・ そんなしょぼしょぼプログラマの儚い夢を実現してくれるツールもしくは方法は存在しないでしょうか。
- みんなの回答 (2)
- 専門家の回答
Perlで記述したCGIをブラウザ上で動かしてみるとうまく動かない。一行ずつ動かすことが出来たら、どこで可笑しなことになっているのか簡単にわかるのに・・・ そんなしょぼしょぼプログラマの儚い夢を実現してくれるツールもしくは方法は存在しないでしょうか。
補足
メールフォームを使おうと思い、KENTさんのClipmailを導入しました。 完成したCGIだからと動作確認せずにサイトにアップして、設定確認などは全てサイト上で行いました。特に問題はなく、きちんとメールが発信できるようになりました。 しかし今後のことも考えて、ローカルサイトを設けようと思い、ActivePerlをd:\usr\binに、AnHttpdをD:\AnHttpdに、fake sendmailをD:\usr\libに置き設定しました。この環境で手元の教科書にあったメールフォームを動かしてみたところ、キチンと動きました。次にメールフォームをClipmailに代えてみたところ、何故かメールが2通届くようになったのです。内容は2通とも同じです。 教科書のメールフォームでは正常に動いたのですから、問題はClipmailの方にあるのでしょう。そのClipmailもネット上のサイトでは正常に動いていたのですから、今回の場合、ローカルサイトのClipmailに設定上の問題があるのでしょう。でも設定に関わる部分を再度見直しても、どこにも問題は無さそうなのです。 sendmailを2度呼び出しているはずです。その2回がそれぞれどのような状況で呼び出されているのか分かれば、異常な呼び出しに関わる部分、多分設定に関わる部分ですけど、を改めればいいわけです。 まずコードを一行ずつ目で追いかけてみようと思ったのですが、CGIもPerlも学習していないので、プロの書いた記述に着いていけず断念。そこでデバッガーを使ってソフトに一行ずつ追いかけてもらおうと思った次第です。 >perl -wc clipmail.cgi もやってみましたが、コードが処理されていく流れまでは理解できませんでした。他の二つの方法もエラーログを表示してはくれますが、処理の流れを教えてくれるものではありません。 日本にないのであればとアメリカのYahoo!を検索してみました。するとPerlEditなるソフトを発見。Lite版が49ドル、Pro版が99ドルです。 でもこれでもブラウザからClipmailを呼び出し実際にメールが届く形でCGIを動かして、その動きを監視することはできないでしょうね。単にコマンドラインで「perl clipmail.cgi」とやっただけではメールは届かないようですから。 というわけで、現状ではCGIを勉強した上で、ソースコードを目で追いかけるのが唯一の方法となりそうです。 CGIは今すぐに勉強出来ません。1ケ月ほどしたら手が出せると思います。その時はPerlEditも購入してみたいと思います。 幸いなことにClipmailはサイト上では正常に動いていますし、とりあえずはこれで良しとしたいと思います。 なんかオチがないので、CGIの勉強をして、今回の二重メールの原因が特定できたら、ご報告させてもらいます。PerlEditの使い心地なども合わせて。 それまでこの質問は締め切らずにおいておこうと思います。 その間にどなたか、今回のケースに即する良いデバッグ法、あるいは二重メールが起こりうる原因などご存じでしたら、大変恐縮ですが、ご教授いただけたら幸いです。