0

このような2つのPerlファイルがあります。perl5db.pl を使用して、file2.pl の 7 行目にブレークポイントを設定しようとしていますが、残念ながらできません。答えを探したところ、モジュールを使用できることがわかりましたが、file2.pl はモジュールを使用していません。私に何ができる?

#file.pl is
#!/usr/bin/perl

use strict;
use warnings;
require "file2.pl";

#  This file is a test file to run the debugger on.

hello();
my $var = 1;
my $var2 = 2;
makeEqual();
sub main {
  if($var == $var2){
    print "they are equal\n";
  }
  else {
    print "they are not equal\n";
    makeEqual();
  }
  my $value =2;
  print "the value is $value\n";

}

sub makeEqual {
  $var = $var2;
  my $str = "  this is crazy";
  $str =~ s/\s+/ /g;
  print "$str is done \n";
}
main();

#file2.pl is

#!/usr/bin/perl

use strict;
use warnings;

sub hello {
  print "I am in hello";
}
1;
4

1 に答える 1

1

デバッガーを初期化した直後に、 の関数をコンパイルした後に停止するようにブレークポイントを設定しfile2.pl、デバッガーがその時点で停止すると、return ステートメント (命令1;)helloでそのファイルの関数を確認できます。

デバッガーを実行します。

perl -d file.pl

hello関数のコンパイル時に停止:

DB<1> b compile hello

継続する:

DB<2> c

関数helloが存在するようになったので、ブレークポイントを設定して続行します。

DB<2> b hello
DB<3> c

今あなたはそこにいます:

main::hello(file2.pl:7):      print "I am in hello";
于 2013-07-26T07:06:43.740 に答える