Perlのコアモジュール一覧表示(Module::CoreList)

Perlに標準でインストールされるモジュール(コアモジュール)の一覧表示スクリプト
Module::CoreListを使用してます。

#!/usr/bin/perl

use strict;
use warnings;
use Module::CoreList;

print "Core Module (perl $]) is\n";
print join("\n", map { "$_ $Module::CoreList::version{$]}{$_}" } sort keys %{$Module::CoreList::version{$]}}). "\n";

※実行時にエラーが発生しますが、コアモジュール表示はできます*1


Module::CoreListにはcorelistというユーティリティが付属しており、shellからモジュール情報が確認できます。
例えば、各Perlにインストールされているstrictモジュールのバージョンを表示するには、

$ corelist -a strict

strict was first released with perl 5
  5          undef     
  5.001      undef     
  5.002      undef     
  5.00307    undef     
  5.004      undef     
  5.00405    1.01      
  5.005      1.01      
  5.00503    1.01      
  5.00504    1.01      
  5.006      1.01      
  5.006001   1.01      
  5.006002   1.01      
  5.007003   1.02      
  5.008      1.02      
  5.008001   1.03      
  5.008002   1.03      
  5.008003   1.03      
  5.008004   1.03      
  5.008005   1.03      
  5.008006   1.03      
  5.008007   1.03      
  5.008008   1.03      
  5.009      1.03      
  5.009001   1.03      
  5.009002   1.03      
  5.009003   1.03      
  5.009004   1.03      
  5.009005   1.04      
  5.01       1.04      

って、感じです。


肝心のModule:CoreListはコアモジュールなのかということですが、

$ corelist Module::CoreList

Module::CoreList was first released with perl 5.009002

どうやら、perl5.9.2からということのようです。
私の環境は、perl5.8.8なので、CPANからインストールしました。

*1:「Use of uninitialized value in concatenation (.) or string at ./xxxxx.pl line 8.」というメッセージが大量に発生します。原因は分からずです。原因は単純なことだと思うのですが、何か嵌まっちゃいましたorz