使用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%+的情况下逐行执行它。
发布于 2011-04-08 06:44:58
您可以通过将$myVar用作全局变量或包变量,然后“观察”它的完全限定名来解决此问题:
package MyPackage;
use strict;
...
use vars qw($myVar);
...或
package MyPackage;
our $myVar = 'foo_part_1';
...然后用w $MyPackage::myVar观看
https://stackoverflow.com/questions/5588444
复制相似问题