如何调试在另一个perl脚本中使用的perl脚本。我们可以分别对两者进行调试。可以在一个步骤中进行调试吗?
例如:
!/user/bin/perl
my $param= 8;
my @res=\`perl extract.pl $config`;
print "The results is .... @res\n";同样,我们可以调试shell脚本中使用的perl脚本吗?
谢谢。
发布于 2012-08-17 23:48:23
动态解决方案:
my $dswitch = $INC{"perl5db.pl"} ? "-d" : "";
my @res=`perl $dswitch extract.pl $config`;当您使用调试器时,$INC{"perl5db.pl"}为true,而当您不使用调试器时,则为false。
发布于 2012-08-17 20:41:56
您可以将-d开关添加到您正在调用的脚本的shebang行:
#!/usr/bin/perl -d发布于 2012-08-17 21:27:29
“正确”的做法应该是更改您的设计,这样您就不会通过系统命令调用其他脚本。那么你就有了一个单一的调试环境。
最好的设计是把extract.pl变成一个模块。
您还可以使用do命令从另一个文件do 'extract.pl'导入代码。那么唯一需要更改的可能就是传入$config的方式。
这两种方法中的任何一种都非常容易实现,并且对于继续开发都有其他好处。也许你有一个很好的理由不这样做,但如果你还没有这样做,我会先考虑一下。
https://stackoverflow.com/questions/12005946
复制相似问题