Leo*_*eon 2 debugging perl foreach
环境:Linux CentOS 7 @HPC接口:命令接口,无GUI
我的PERL脚本有一个逻辑错误.它不会在"foreach"循环中完成.我在下面使用调试器命令:
perl -d /scripts_location/perlscripts.pl
Run Code Online (Sandbox Code Playgroud)
但是,它是一步一步运行的.我的脚本有近千行.这是我的问题:
是否有任何资源可以在整个过程中显示调试器技能?
我在线搜索.他们中的大多数都解释了命令.但很少有人从一开始就介绍调试.我的意思是首先给出一个简单的程序,在程序中设置断点或其他标签,检查输出或跟踪错误,等等.查看网站后,我无法知道如何使用PERL调试器开始调试.我曾经使用特定行的输出调试我的程序来检查输出是否正确.但是,不能以这种方式计算出当前的逻辑错误.
任何进一步的建议和帮助将受到高度赞赏.
启动调试器后,您可以告诉它继续直到它到达给定的行,例如
c 124
Run Code Online (Sandbox Code Playgroud)要弄清楚为什么没有输入foreach循环,请在输入之前检查循环列表.您可以告诉调试器像这样评估表达式:
x @values
Run Code Online (Sandbox Code Playgroud)
如果循环是这样的foreach my $value (@values).它可能会告诉你
empty array
Run Code Online (Sandbox Code Playgroud)
要发现数组为emtpy的原因,您可以尝试"观察"数组
w @values
Run Code Online (Sandbox Code Playgroud)
然后运行脚本r.一旦观察到的值发生变化,它就会停止.
使用h可查看帮助.