关键时刻,正确使用perl debug,可以快速准确的找到bug原因。
推荐:perl debug正规方法
perl -d xxx.pl xxx.parameter
对perl程序进行debug
基础点:
1. h 帮助
2. n 下一步next,跳过sub子函数;
3. s 单步调试,可以进入sub子函数;r 跳出子函数调试;
4. p 打印表达式的结果,也可以显示变量的值,比如p $aaa;
5. w 监视表达式。至今没搞清楚怎么监视所有变量。这个是唯一不爽的地方。
6. x 显示变量结果;比p支持的数据类型更多。
7. V 支持正则表达式方法匹配变量。【个人认为,比p和x还要好用】
8. c 6 : continue到6行
9. b 行号;断点设置。B 行号;断点去除。L;查看断点。
10. q 退出。
利用emacs m-x perldb,界面更友好。
利用打印变量值的方法
Smart::Comments
Smart::Comments是另外一个模块,以注释的方式调试和跟踪代码。但是,Smart::Comments不是perl默认自带的模块,需要下载使用,下载地址:http://search.cpan.org/~neilb/Smart-Comments-1.06/lib/Smart/Comments.pm。
ps:perl模块可以不安装,只需要增加指明库的路径即可。
#!/usr/bin/perl
use strict;
use lib './Smart-Comments-1.06/lib' ; #网上下载后,没有安装到perl目录里,所以需要增加库的路径。
use Smart::Comments;
my $aa;
# 在这里进行变量的赋值
$aa = 1;
### $aa
在执行上述程序的时候,会有如下输出:
### $aa: 1
ptkdb图形界面debug
ptkdb是perl的模块。
这种方法,只是增加了一个图形界面,没多大实际意义。没增加什么特别有用的功能。
elipse图形界面debug
感觉最关键的是实时监视所有变量。
参考文档:
Perl篇:常用调试命令 - royen - 博客园
http://www.cnblogs.com/royenhome/archive/2010/09/09/1822239.html
Perl脚本的调试方法 - 博客频道 - CSDN.NET
http://blog.csdn.net/pendle/article/details/5780842
功能丰富的 Perl:轻松调试 Perl
http://www.ibm.com/developerworks/cn/linux/sdk/perl/culture-4/