今日のCPANモジュール(跡地)

宣伝と注意書き

このサイトが元になったCPANモジュールガイドという本を書きました。

Module::CoreListは本では取り上げていません。コアモジュールの場合インストール不要かというとそうではなく、更新されているものはアップデートしていった方が良いと考えたからです。

執筆時点のバージョンを記載しており、できるだけこのバージョン以上をお使いください、としました。なお、perl本体と同じディストリビューションで開発されているため単体ではアップデートできないモジュールもあります。それらについては確認したperlのバージョンを記載しました。

2007-02-15

use Module::CoreList;

ぜんぜん日刊じゃないじゃないか!と言われそうなので、こっそり発行周期を「ほぼ日刊」に改めた今日のCPANモジュールです。

さて、前々回の Fatal は、"コア"モジュールでした。つまり、Perlと一緒に入ってくるので別途インストールが不要なモジュールです。前回の App::Options は、コアじゃないのでインストール(> sudo cpan App::Options)が必要です。

あるモジュールが、コアなのかコアじゃないのか、また Perl のバージョンいくつからバンドルされているのか、そのあたりを調べることができるのが Module::CoreList です。

インストールすると、corelist というプログラムが /usr/local/bin などパスの通ったところにインストールされます。

使い方は、corelist に聞きたいモジュール名を渡すだけです。

> corelist Fatal

Fatal  was first released with perl 5.00307

Fatal は Perl 5.3 のころからコアであることがわかります。

ほかに、例えば CGI というモジュールはコアなのですが、バージョン3.06で文字コードまわりの動作変更がありました。そこで、最近の Perl にはバージョン何がバンドルされてるのかな、と調べるときは -a を使います。

> corelist -a CGI

CGI  was first released with perl 5.004
  5.004      2.36      
  5.00405    2.42      
  5.005      2.42      
  5.00503    2.46      
  5.00504    2.46      
  5.006      2.56      
  5.006001   2.752     
  5.006002   2.752     
  5.007003   2.80      
  5.008      2.81      
  5.008001   3.00      
  5.008002   3.00      
  5.008003   3.01      
  5.008004   3.04      
  5.008005   3.05      
  5.008006   3.05      
  5.008007   3.10      
  5.008008   3.15      
  5.009      3.00      
  5.009001   3.04      
  5.009002   3.07      
  5.009003   3.15_01

と、Perl 5.8.7 から 3.06 以上が入っていることがわかります。ちなみに、点2個を使うバージョン表記を小数表記すると 5.8.6 = 5.008006 です。

corelist に聞くモジュール名は大文字小文字正しい必要がありますが、よくわからないときは正規表現風に スラッシュではさんで渡すとそう解釈してくれます。さて、Module::CoreList そのものはコアでしょうか?

> corelist /::corelist/i

Module::CoreList  was first released with perl 5.009002

perl 5.9.2 から、ということですね。5.8 系の場合は corelist を使う前に cpan Module::Corelist する必要があります。

Perl では、この点2個形式で真ん中の数字が偶数=正式リリース奇数=開発版という意味で、5.9.x は 5.10 へ向けての開発版ということです。つまり、Module::CoreList は 5.10 から晴れてコア入りするらしいことがわかります。

他のオプションは、corelist --help するか、PODを参照してください。

Module::CoreList のように、インストールすると、そのモジュール自身を使った小さなプログラムをインストールしてくれるタイプのはけっこうたくさんあります。App::Ackack とか、LWP の GET や HEAD など。いずれとりあげます。