モジュールが標準モジュールか CPAN からインストールしたものかどうかわからなくなった時に調べる方法です。
Module::CoreList を使う
Module::CoreList
というモジュールがあります。このモジュール自体は v5.8.9 から標準モジュール入りしています。以下のように使います。
$ perl -MModule::CoreList -e 'print Module::CoreList::first_release("Encode")'
5.007003
存在しないモジュールを指定した場合は undef
が返されます。
$ perl -MModule::CoreList -e 'print "will not be printed." if (Module::CoreList::first_release("NoModule"))'
corelist コマンドを使う
Module::CoreList
と基本的に同じことをやってくれますが、こっちの方がコマンドが短いので簡単です。
$ corelist Encode
Encode was first released with perl v5.7.3
-a
オプションでバージョンの履歴を出せます。
$ corelist -a Encode
Encode was first released with perl v5.7.3 v5.7.3 0.40 v5.8.0 1.75 v5.8.1 1.9801 v5.8.2 1.9801 v5.8.3 1.99 v5.8.4 1.99_01 v5.8.5 2.01 v5.8.6 2.08 v5.8.7 2.10 v5.8.8 2.12 v5.8.9 2.26 v5.9.0 1.9801 v5.9.1 1.99_01 v5.9.2 2.09 v5.9.3 2.14 v5.9.4 2.18_01 v5.9.5 2.23 v5.10.0 2.23 v5.10.1 2.35 v5.11.0 2.37 v5.11.1 2.37 v5.11.2 2.38 v5.11.3 2.39 v5.11.4 2.39 v5.11.5 2.39 v5.12.0 2.39 v5.12.1 2.39 v5.12.2 2.39 v5.12.3 2.39 v5.13.0 2.39 v5.13.1 2.39 v5.13.2 2.39 v5.13.3 2.39 v5.13.4 2.39 v5.13.5 2.40 v5.13.6 2.40 v5.13.7 2.40 v5.13.8 2.40 v5.13.9 2.42 v5.13.10 2.42 v5.13.11 2.42 v5.14.0 2.42 v5.14.1 2.42 v5.14.2 2.42_01
こちらは存在しないモジュールを指定した場合は以下のような出力が得られます。
$ corelist -a NoModule
NoModule was not in CORE (or so I think)
コメント