Subscribed unsubscribe Subscribe Subscribe

メソッドが定義されたファイル名と行番号を取得するコマンドを作った

perl
$ source_location.pl File::Spec canonpath
FILENAME: /Users/Cside/.../File/Spec/Unix.pm
LINE:    71

親クラスまでたどった大元の定義位置を返すので、クラス階層が複雑なときにデバッグに役立つ。 cpanm UNIVERSAL::source_location_for するとコマンドが使える。

UNIVERSAL::source_location_for は 結構前から CPAN に上げていた が、自分ではもっぱらラッパーコマンドから使うことがほとんどだったので、今回のバージョンでそのコマンドも同梱したという経緯。

-I オプションで任意のパスを通すようにするか迷ったが、 zsh なら perl =source_location_for -Iextlib で同じことができるので、まあいいかと思って今回は見送った。需要あれば p-r おなしゃす。 -> https://github.com/Cside/UNIVERSAL-source_location_for