ActivePerl::Config::find_prog #2

前のエントリでは,ActivePerl/Config.pm にパッチを当てていたけど,

The problem is that Module::Install adds 'inc/Module/Install' to the @INC in its load_extensions method. On Windows we end up loading Config_heavy.pl here which loads ActivePerl::Config and ActiveState::Path. ActiveState::Path contains this statement:

        use base 'Exporter';

so Perl ends up trying to load 'base.pm'. Since the Windows file system is case insensitive and Module::Install has added 'inc/Module/Install' to @INC this ends up loading inc/Module/Install/Base.pm instead of the base pragma. The result is that ActiveState::Path doesn't inherit from Exporter as it should and the import of find_prog() in ActivePerl::Config fails silently.

と Gisle が言っていて,これが問題だったのかということで ActiveState/Path.pm にパッチを当ててみた.

--- Path.pm.orig	Sat Oct 01 01:31:16 2005
+++ Path.pm	Fri Apr 07 10:24:37 2006
@@ -2,9 +2,10 @@
 
 use strict;
 
-our $VERSION = '0.02';
+our $VERSION = '0.02_1';
 
-use base 'Exporter';
+require Exporter;
+our @ISA = qw(Exporter);
 our @EXPORT_OK = qw(path_list find_prog is_abs_path abs_path join_path rel_path unsymlinked realpath);
 
 use constant IS_WIN32 => $^O eq "MSWin32";

ActivePerl/Config.pm を元に戻してもエラーが出ないようになったので,ひとまず解決の流れかな.
ところで,これ結構はまる人いそうな気がするんだけど,検索しても(ただし,Google 日本語検索)1人しか見つけられなかった.こんなパッチ当てておけば,Plaggerも入るかもしれませんよー.