Похоже, вам просто нужно использовать конфигурацию INSTALL_BASE для Makefile.PL (или параметр --install_base для Build.PL)? Что именно вам нужно для решения? Похоже, вам просто нужно установить установленный модуль в нужном месте. Вы представили свою проблему как XY Проблема , указав, что, по вашему мнению, является решением, вместо того, чтобы позволить нам помочь вам с вашей задачей.
См. Как мне сохранить собственный каталог модуля / библиотеки? в perlfaq8, например.
Если вы загружаете модули из CPAN, последняя команда cpan
(в App :: Cpan ) имеет переключатель -j
, позволяющий выбирать альтернативные файлы конфигурации CPAN.pm. В этих файлах конфигурации вы можете установить параметры CPAN.pm для установки в любом месте.
Исходя из вашего пояснения, звучит так, что local :: lib может работать для вас в отдельных простых случаях, но я делаю это для развертываний промышленного уровня, где я настраиваю индивидуальные, частные CPAN для каждого приложения и устанавливаю непосредственно из этих пользовательских CPANs. См., Например, мой MyCPAN :: App :: DPAN модуль. Исходя из этого, я использую пользовательские конфиги CPAN.pm, которые анализируют их среду и устанавливают правильные значения, чтобы каждое приложение могло устанавливать все в каталоге только для этого приложения.
Вы также можете рассмотреть возможность распространения вашего приложения в качестве Task ::. Вы устанавливаете его как любой другой модуль Perl, но зависимости используют ту же настройку (т.е. INSTALL_BASE).