Perl CGI 调试的几种方法

Perl CGI 调试的几种方法,第1张

概述今天有位女同学过来问怎么调她写的CGI脚本,因为种种原因, 开发机上启不了httpd服务器,跟我说里面的perl代码她都已经测试过了,没问题,但是build没出来,等不及了,问我怎么手工调试。本来觉得实在太简单,没什么好说的,但是既然有人不知道,就总结一下,万一用上了呢? 想了一下,自己的调试方法也很原始,只有三板斧 1.使用curl CGI本来是从Java代码调用过来的,但是为了调试几个小CGI

今天有位女同学过来问怎么调她写的CGI脚本,因为种种原因, 开发机上启不了httpd服务器,跟我说里面的perl代码她都已经测试过了,没问题,但是build没出来,等不及了,问我怎么手工调试。本来觉得实在太简单,没什么好说的,但是既然有人不知道,就总结一下,万一用上了呢?

想了一下,自己的调试方法也很原始,只有三板斧

1.使用curl

CGI本来是从Java代码调用过来的,但是为了调试几个小CGI而启动笨重无比的JavaEE容器就显得有点那么不太划算,最好的办法就是用curl,完全模拟了http request。首先你要拿到完整的url,八仙过海,各显神通,不管通过什么方式,你要用curl必须知道url是什么,然后就是在命令行中用curl + url。

curl的参数很多,支持http、httpS、FTP等协议,http支持GET、POST等。到目前为止,我遇到的各种http请求,用curl都能模拟,举个简单的例子

curl -k https://localhost:8002/cgi-bin/test?path=%2Fvar%2Flog\&time=1420956483378

因为httpd使能了httpS,所以加了参数-k,然后是url,注意有可能需要转义,特别是‘&’, 但是不一定需要URI escape。具体使用时如果碰到问题,看一下错误信息或者日志就清楚参数是否正确传入了。

2.支持使用perl命令行

如果实在没有httpd,curl也用不了,那用perl命令行也能跑Perl CGI脚本。方式就是

perl cgiscript.pl param1=val1 param2=val2 param3=val3
结果该打印的还是会打印,跟使用curl差不多。而且也能够用$q->param("param1")的方式正确获得参数。

3.perl -d

这是perl内置的单步调试命令,可以加断点,可以查看变量的值,能够step in、step out方法,几乎跟IDE的功能差不多了。

我经常用这种方式来验证一些perl语言本身的特性,不依赖其他module,用起来很方便。
具体用法不多说,进去以后h一下就看到帮助了



再补充一个常用的命令,perl -c 来检查语法错误。写完脚本以后先用这个命令查一下,没有错误了再提交代码,因为编译不过而导致构建失败,这怎么说呢...

另外,你说你自己都跑过没问题了,一放到CGI上就报变量没定义,为嘛?建议平时写脚本的时候还是要带上use strict;

总结

以上是内存溢出为你收集整理的Perl CGI 调试的几种方法全部内容,希望文章能够帮你解决Perl CGI 调试的几种方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1273883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存