# perlbrew/plenv 時代の Plack アプリでモジュールパスとか見るやつ {{tag: perl, cpan, plenv}} perlbrew とか plenv 環境で Plack アプリを開発・運用していて、なんか @INC おかしいぜとか system perl 見ちゃってねーかおい、みたいな場面で便利な {{cpan: Plack::Middleware::ModuleInfo}} 書きました。 ## Plack::Middleware::ModuleInfo use Plack::Builder; builder { enable 'ModuleInfo', allow => ['127.0.0.1'], path => '/module_info'; $app; }; path で指定したエンドポイントにクエリでモジュール名(「::」はハイフンにして)渡すと、もりっと情報が返ってきます。 % curl http://server:port/module_info?Some-Module --- PID: 28268 lib: - /home/user/perlbrew/perls/perl-5.18/lib/site_perl/5.18.4/x86_64-linux - /home/user/perlbrew/perls/perl-5.18/lib/site_perl/5.18.4 - /home/user/perlbrew/perls/perl-5.18/lib/5.18.4/x86_64-linux - /home/user/perlbrew/perls/perl-5.18/lib/5.18.4 mod: file: /home/user/perlbrew/perls/perl-5.18/lib/5.18.4/Some/Module.pm name: Some::Module version: 0.01 Debug 関連で、libパスとか読んでるモジュール全部べろっと吐くやつとかあると思うのですが、プロダクションに投入できることを想定して書きました。 なお、allow / path あたりのつくりは {{cpan: Plack::Middleware::ServerStatus::Lite}} から頂きました。ありがとうございます。 うぇーい。