【Perl】 インストールされているモジュールの一覧を取得する

投稿日: / 更新日:

この記事は2年以上前に書かれたものです。情報が古い可能性があります。

複数のシステムを運用している場合、それぞれのシステムにどのモジュールが(追加で)インストールされているか、確認したくなることがあります。

インストールされているモジュールの一覧を得るための一般的な方法として、@INC配下にある.packlistというファイルの存在を確認する、という方法があります。強引にワンライナーでやろうとすると、概ね以下のようになります。なお、grep /auto/としているのは、コアモジュールを除外するためです。

いくつかのモジュールのバージョン取得に失敗していますが、概ねうまくいっているようです。

上記のように.packlistからモジュール一覧を取得する処理を、もう少し実用的に実装したモジュールとして、ExtUtils::Installedがあります。これを使って、上記よりも少しだけ洗練された(?)スクリプトを書いてみます。

実行結果は、以下のとおりです。

概ね、最初のワンライナーと同じ出力ですが、ExtUtils::Installedを使用することによって、ワンライナーで取得できなかったモジュールのバージョンも取得できています。ただしこの方法でも、残念ながらいくつかのモジュールについては正しく取得できていません。尻切れトンボな記事になってしまい恐縮ですが、より正確な方法をご存じでしたら、コメント等でご教示頂けると幸いです。

Hinemos導入はアトミテックにお任せください

見積もりを依頼する

最新情報発信中

Xやメルマガでも、Hinemosの保守、
開発、導入、構築やカスタマイズ等の
お役立ち情報を発信しています。
是非ご登録ください。