今回は私が実際に行っているPerl開発におけるデバッグのテクニックについて紹介したい。といっても難しいことは何もしていないし、わかる人には当然の知識なので、Perlのデバッグ作業にお困りの方だけ読んでいただければ良いと思う。
もともとPerl5からは標準でデバッガがついているが、コマンドラインでのデバッグはほとんど利用したことがない。私はローカルのテスト環境にAN HTTPD + ActivePerlを利用しているので、そのままブラウザに出力できるのが一番手っ取り早く、実際の運用に近い形でチェックできる。そこで行っているのが以下の方法だ。
まず、cgiスクリプトの最後にでも以下のサブルーチンを記述しておく。
sub debug
{
my $testlog = $_[0];
print "Content-type: text/html\n";
print "\n";
print $testlog;
exit;
}
要するに受け取った値をブラウザに出力するだけのコードだ。
あとはスクリプトの任意の場所に
$temp = "確認したい変数や文字";
&debug("$temp");
と書くだけである。
$tempに適当な文字などを入れて正常にブラウザで表示されればブレイクポイントとして機能するし、変数を当て嵌めれば格納されている値をチェックすることも可能だ。一時的に解除するなら"#"を先頭につけてコメント行にするだけで良い。非常に簡単だが、実に便利なテクニックでデバッグ後もサブルーチンを残しておけばいつでも利用することができる。