自分でデバッグするときには、大体見るべきところがわかるので、そこにprint文入れたりとかdumpすると大抵解決するんだが、プログラミング初心者のスクリプトを見てやるときにはそうもいかない。というか、どこら辺がエラーの原因かとかいうめぼしも着かないから、そもそも会話が通じなくて、時間をかなり浪費したりする。
seemoreプラグインにデバッグ用のサブルーチンがあったので、それをうまく使えば、手動かすほうもみてやる方も手間が軽減されてハッピーだ。むしろwarnings,strict,debugは他人のコードには必須アイテムかも。
sub debug { my ($level, @msg) = @_; if ($debug_level >= $level) { print STDERR "$package debug $level: @msg\n"; } }
こんな感じの関数を定義したら、やたらめったらと呼び出すようにしておく。
debug(2, "story() called");
デバッグレベルを指定することで標準エラー出力への内容の詳細さが変えられるようにしとくと、いいみたい。
他人のプログラム見てやることで、効率的なデバッグのテクを習得したから、それはそれで意味あることなのかな?
いや、そういうデバッグ用のモジュールあるはずだからそれの使い方まで覚えるべきなんだろうなぁ。
ってそういうモジュールって何ヨ?