4

我正在使用“perl -d”开关在 SuSe Linux 上调试 perl 程序。

调试时,程序正在报告XYZ variable is not set

如何在调试器中设置 XYZ 的值?

我尝试在调试器内部进行跟踪,但没有工作。

set XYZ=ABC
my $XYZ=ABC
setenv XYZ ABC

我对此做了一些谷歌。但是找不到我想要的。

4

2 回答 2

4

调试控制台采用 Perl 表达式,因此如果它是字符串,则需要引用该值。

您必须将程序移动到引发错误的行之前(查看断点,它b <line>在调试器中),然后设置值。

> $XYZ='ABC'

这是一个很好的资源: http: //obsidianrook.com/devnotes/talks/perl_debugger/

于 2012-11-06T09:32:14.540 回答
2

假设您尝试将 $XYZ 设置为字符串 ABC 尝试:

$XYZ = 'ABC'

如果你使用

my $XYZ='ABC'

它将仅在当前范围内定义变量 $XYZ。从调试器中的测试来看,该范围似乎没有扩展到调试控制台之外(即只能在控制台的该行上访问)。例如

  DB<2> my $x = "hello"; print "$x"
hello
  DB<3> print $x
Use of uninitialized value $x in print at (eval 8)[/usr/share/perl/5.12/perl5db.pl:638] line 2.
于 2012-11-06T09:42:24.937 回答