デバッグ
perl -d script.pl
最低限以下だけ覚えておけば使えそうな気がする。後はhelp&使いながら覚える戦法。
h #ヘルプ s #ステップ実行 l #次の行表示 b #ブレークポイント設定 d #ブレークポイント解除 V PKG VARS #パッケージ変数 y #レキシカル変数 T #スタックバックトレース |[CMD] #ページャに実行結果渡す
モジュールはちと大変かも。
サブルーチン呼ぶ適当なスクリプトで-dオプションするか、Data::Dumper使って適当にログファイルに吐くとか。
Data::Dumperはこんな感じ。オブジェクト指向的にも書けるみたい。
use strict; use Data::Dumper; my ($foo, $bar) = qw(foo bar); print Dumper($foo, $bar); print Data::Dumper->Dump([$foo, $bar]); my $piyo; { local $Data::Dumper::Terse = 1; #$VAR1とか出ないように local $Data::Dumper::Indent = 0; $piyo = eval (Dumper($foo)); } print "$piyo\n"; #$fooを再現できる
あと、evalでちょっと嵌ったのでメモ。
eval BLOCK eval EXPR
の両方があり、前者は実行時例外のトラップに使う。後者は表現をコンパイルして実行。
最後に評価された値が戻り値になる。