在一个Perl项目中,通常如何修复脚本中的错误? 请任何人都可以提供一些想法。 在此先感谢。如何调试Perl项目
2
A
回答
4
我首先想到的是perldoc perldebug
我认为这是最好的地方开始。
我的第二个是:始终把
use strict;
use warnings;
你的脚本的顶部,你可以把
use diagnostics;
也为生产出更详细的警告诊断
打开潘多拉盒子之前,请利用Perl模块Data::Dumper
。
这是显示所有(嵌套)数据结构和对象,看(我用perlconsole
,这是很好的尝试一些技巧)有用:
$ perlconsole
Perl Console 0.4
Perl> my $ref = { foo => 'bar', arr => [ 1, 2, 3, [ qw/a z e r t y/ ] ] }
HASH(0x1fc25a8)
Perl> use Data::Dumper;
Perl> print Dumper $ref;
$VAR1 = {
'foo' => 'bar',
'arr' => [
1,
2,
3,
[
'a',
'z',
'e',
'r',
't',
'y'
]
]
};
1
Perl>
你会看到,Perl可以运行脚本与
perl -d -e 42 script.pl
帮助调试器说:
$ perl --help | grep -- '-d'
-d[:debugger] run program under debugger
可以 “追踪” 这太有:
perl -d:Trace script.pl
有一个gui调试过,它带有Devel::ptkdb
模块,例如:
perl -d:ptkdb script.pl
尝试
perlcritic
同样,命令行界面批判Perl源代码。
剖析你的代码也可以,看
http://metacpan.org/pod/Devel::NYTProf
http://blog.timbunce.org/2008/07/15/nytprof-v2-a-major-advance-in-perl-profilers/
3
perl -c <your program>
...会给你在Perl脚本中的任何语法错误,包括具体的错误讯息你可以在互联网上查找的ges。
另外,给自己一个机会,通过放置: -
use strict;
在每一个你的Perl文件的顶部。没有它,Perl会自动生成你错误输入的变量。有了它,任何未声明的变量都会被视为语法错误。
相关问题
- 1. 如何调试VSPackage项目
- 2. 如何调试Android项目
- 3. 如何调试nodejs项目?
- 4. 如何调试sitefinity项目
- 5. 如何调试`figwheel-sidecar`项目?
- 6. 如何在Flex中调试AS3项目...?
- 7. 如何在omnet中调试bmac项目?
- 8. 如何在Eclipse中调试Maven项目?
- 9. Eclipse CDT:如何启用项目调试
- 10. 如何调试在MSI /安装项目
- 11. 如何调试类库项目?
- 12. 我如何调试我的angular2项目
- 13. 如何配置要调试的项目?
- 14. 如何在MyEclipse中调试GWT项目?
- 15. 如何使用QtCreator调试DLL项目?
- 16. 如何调试主要的SafariPlugIn项目?
- 17. IntelliJ:我如何调试Maven-GWT项目?
- 18. 如何调试JDB中的GWT项目?
- 19. 如何从C#项目调试C++ dll?
- 20. 调试java项目
- 21. 调试Zend项目
- 22. 调试WCF项目
- 23. 调试MSBuild项目
- 24. Visual Studio如何在项目B启动时调试项目A?
- 25. 调试Rubymine - 只调试项目文件?
- 26. *** glibc detected ***项目/调试/项目:免费():
- 27. 调试perl CGI
- 28. 如何调试Perl CGI脚本?
- 29. Perl调试器 - 如何跳出循环
- 30. 如何与Perl调试器API接口?
使用术语“autovivify变量”,你所做的方式并不完全准确。自动生成功能仍然可以通过'strict strict'来实现,例如:'my $ var; $ var - > {foo} - > {bar} ='这个hash-in-hash已经被自动生成了。 print $ var - > {foo} - > {bar},“\ n”;' –
你认为他在做匿名哈希吗? :) –
不是。只是尽量不要将他混淆。好的,也许我的评论并没有实现这个目标......;) –