我正在使用“perl -d”开关在SuSe Linux上调试perl程序。
在调试时,该程序正在报告XYZ variable is not set
如何在调试器中设置XYZ的值?
我尝试在调试器内部进行操作但不能正常工作。
set XYZ=ABC
my $XYZ=ABC
setenv XYZ ABC
我对此做了一些谷歌。但找不到我想要的东西。
答案 0 :(得分:4)
调试控制台采用Perl表达式,因此如果值是字符串,则需要引用该值。
您必须将程序移动到抛出错误的行之前(查看断点,在调试器中它是b <line>
),然后设置值。
> $XYZ='ABC'
这是一个很好的资源:http://obsidianrook.com/devnotes/talks/perl_debugger/
答案 1 :(得分:2)
假设您正在尝试将$ XYZ设置为字符串ABC try:
$XYZ = 'ABC'
如果您使用
my $XYZ='ABC'
它将仅在当前范围内定义变量$ XYZ。从调试器中的测试开始,看起来该范围不会扩展到调试控制台之外(即它只能在控制台的那一行上访问)。 E.G。
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.