1

次のようにスクリプトが呼び出された Perl スクリプトをデバッグしているとします。

perl -d  test.pl > file.txt

test.pl:

print "Hello world\n";
my $a = 2;
print "$a\n";
1;

print ステートメントが出力をデバッガーのスクロール ウィンドウに送信するように、スクリプトの出力をデバッガー内からデバッガーの stdoutにリダイレクトする方法はありますか?

そうでない場合、デバッガー内からコマンドを発行して、これまでのすべてをフラッシュするfile.txt方法はありますか?

4

2 に答える 2

2

デバッグ中に任意の Perl を評価できます。DB::OUT は、出力用にデバッガーによって開かれたファイルハンドルです。だからただ使うselect DB::OUT

与えられたテスト:

use v5.14;
say 1;
say 2;
say 3;

select の使用を示すログは次のとおりです。

$ perl -d test > log

Loading DB routines from perl5db.pl version 1.33
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(test:2):     say 1;
  DB<1> n
main::(test:3):     say 2;
  DB<1> select DB::OUT

  DB<2> n
2
main::(test:4):     say 3;
  DB<2> n
3
Debugged program terminated.  Use q to quit or R to restart,
  use o inhibit_exit to avoid stopping after program termination,
  h q, h R or h o to get additional info.
  DB<2> q
$ cat log
1
于 2013-05-06T19:40:25.417 に答える