在一個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」;' –
你認爲他在做匿名哈希嗎? :) –
不是。只是儘量不要將他混淆。好的,也許我的評論並沒有實現這個目標......;) –