CentOS の Perl で DateTime を使用する

SETUP


CentOS 5.6 の Perl で DateTime モジュールを使用する

CentOS 5.6 上で動作している Perl で DateTime モジュールを使おうと思ったところ、CPAN でのインストールに失敗してしまいました。

CPAN については以前に CPAN を用いて Perl モジュールをインストールする でお話したことがありましたけど、この方法で DateTime モジュールをインストールしようとしてみたところ、次のようなエラーが表示されてしまいました。

make: *** [test_dynamic] エラー 255

/usr/bin/make test -- NOT OK

Running make install

make test had returned bad status, won't install without force

この時には "Test::Harness" パッケージをアップデートすれば解消されるという話も聞きましたけど、CentOS 5.6 の場合には yum を用いて "perl-DateTime" パッケージをインストールすることで、DateTime モジュールを利用できるようになるようでした。

 

CentOS 5.6 で Perl の DateTime モジュールをインストールするためには、次のようにします。

yum install perl-DateTime

ただしこのとき、自分が試してみた感じでは、perl-DateTime パッケージは EPEL リポジトリから、そしてそれが依存する perl-Class-Singleton パッケージと perl-Params-Validate パッケージは RPMFORGE リポジトリから、インストールされるようでした。

これらのリポジトリの設定方法については CentOS 5.5 に EPEL リポジトリを追加する CentOS 5.4 のシステムアップデート取得先としてリポジトリを追加する などで触れていますので、必要に応じてそちらも参考にしてみてください。

 

このように perl-DateTime パッケージをインストールすることで、次のように DateTime モジュールを Perl 内から利用できるようになりました。

use DateTime;

 

my $datetime = DateTime->now(time_zone => 'local');

my $filename = $datetime->strftime('/var/log/%Y%m%d.log');

このような感じで、日付に基づいた文字列を生成するようなことも、簡単にできるようになりました。