使用perl -d
,我在我的脚本中使用的变量上设置了一个监视(w $myVar
)。每当我的脚本调用perl模块时,手表会“重置”为未定义的值。
Watchpoint 0: $myVar changed:
old value: 'foo_part_1'
new value: ''
Net::FTP::cwd(/usr/lib/perl5/5.8.8/Net/FTP.pm:548):
548: @_ == 1 || @_ == 2 or croak 'usage: $ftp->cwd( [ DIR ] )';
__DB<2> r
scalar context return from Net::FTP::cwd: 1
Watchpoint 0: $myVar changed:
old value: ''
new value: 'foo_part_1'
是否可以抑制;
(1)源于范围的更改消息在perl中发生更改。或;
(2)模块的整个执行输出?在大多数情况下,我没有写它,我很确定我无法调试它,所以我真的不在乎看到它在95%以上的情况下逐行执行。
答案 0 :(得分:1)
您可以使用$myVar
作为全局变量或包变量来解决此问题,然后“观察”它的完全限定名称:
package MyPackage;
use strict;
...
use vars qw($myVar);
...
或
package MyPackage;
our $myVar = 'foo_part_1';
...
然后使用w $MyPackage::myVar
观看