4

「perl-d」スイッチを使用して、SuSeLinuxで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 に答える