CPAN モジュールの依存関係の解決

 Perlは多重継承も使える。
 その時、メソッド検索は、深さ優先検索のアルゴリズムらしい。
 つまり、プログラム実行時、深い継承階層を優先して順に検索して実行メソッドを探す。
 継承階層が少なければ速いだろうが、継承階層が深くなると遅くなる。

 PluggerやCatalystは依存関係が解決できずインストールが難しいという話は良く聞くが、その原因がこの辺りにあるのかもしれない。

CPAN モジュールのインストールの依存解決にはコードから継承関係を推測はせずに、モジュールに含まれている Makefile.PL や Build.PL を使って依存解決していたはず。

だから、依存関係が解決できない場合はそのモジュールの作者が Makefile.PL や Build.PL に依存しているモジュールをリストし忘れているのがほとんどではないかと思う。

追記

XS なモジュールだとコンパイルに失敗したりとかってのはある。

ちなみにこのエントリは、「『PluggerやCatalystは依存関係が解決できずインストールが難しい』の原因はメソッド検索のアルゴリズムとは別だと思います」と言いたいだけです。細かいツッコミ(;'-')

追記 2

一番多いのはテストがコケてる奴か(;'-')

まぁ、依存関係の解決とはまた違うか(;'-')