Мы используем Module :: Build в нашей группе.
Основная причина Легкая расширяемость .
Module :: Build позволяет вам делать больше с вашим процессом сборки в чистом Perl посредством создания подклассов. Если вы хотите сделать больше, используя Module :: Install , вы должны знать, как работают Makefiles, AFAIK. Поскольку вы, вероятно, уже знаете Perl, это может быть преимуществом.
Как вы сказали, использование Module :: Build удаляет зависимость от внешней make
программы, что можно рассматривать как хорошую вещь.
Однако основные минусы, о которых я могу подумать:
- Несмотря на то, что Module :: Build имеет ядро, не все будут использовать последнюю версию Perl. Для пользователей со старыми версиями ядра вы создадите новую зависимость.
- Множество ветеранов (не обязательно Perl) привыкли к парадигме
perl Makemaker.PL; make; make install
и могут быть отброшены с помощью Build.PL
. Надеюсь, это не имеет большого значения.
- Module :: Build иногда ломал наши сборки, когда его функциональность изменялась, потому что документация не охватывала крайний случай, который мы использовали. Затем крайний случай был изменен и задокументирован, но нам пришлось перекодировать наш подкласс, чтобы наша сборка снова заработала (это произошло для нас при недавнем обновлении с 0.2808 до 0.3).
Все это говорит о том, что я по-прежнему рекомендую Module :: Build просто для расширяемости. Если это не проблема для вас, вам лучше придерживаться Module :: Install.