ブレークポイント用に以下のようなサブルーチンを作ってみました。
sub bp {
if(not defined $_[0]){return};
open(OUT,">>$bpfile") || err('ファイルが開けません。bp');
eval{flock(OUT,2)};
my $num=@_-1;
print OUT $_[0];
for my $i(1..$num) {
print OUT "\t".$_[$i];
}
print OUT "\n";
close(OUT);
}
ただ
bp();
と記述すれば何もせず、本当にただのブレークポイントですが、引数に変数を持ってくれば、その位置での変数の値をファイルに記録してくれます。
ただ引数が連想配列だった場合、キーや値が表示される順番が毎回違うので使い勝手に難があります。変数の型をサブルーチン側で判別して、コードを書き分けることは出来ないでしょうか。
お礼
ありがとうございます。 うまく分岐できました。