ExtUtils::Install

perl モジュールをインストール/アンインストールする。

use ExtUtils::Install;
パッケージをロードする。

インストール関数は低レベル(ディレリトリを直接指定してインストールする)で危険なので非推奨。アンインストール関数は、使えそう。

使い方:
uninstall($packlist);

CPAN でモジュールをインストールすると、パッケージリストと呼ばれるファイルを生成する。このファイルには、インストールしたファイルリストなどが記録されている。
uninstall 関数には、パッケージファイル名をパラメータに渡す。

パッケージファイル名を取得する例:
packlist メソッドの戻り値は、ExtUtils::Packlist オブジェクト。

use Config;
my $module = "Digest::SHA";
$md =~ s|::|/|g;
my $pack = "$Config{'sitearchexp'}/auto/$module/.packlist";
use ExtUtils::Installed;
my $module = "Digest::SHA";
my $util = Extutils::Installed->new;
my $pack = $util->packlist($module)->packlist_file();

不具合点:
欠けているファイルを見つけると、途中でアンインストールを中断してしまう。
事前に、ExtUtils::Installed で欠損ファイルを調査し、ダミーファイルを作成しておくとよい。