Если в моем коде Perl есть код производственного кода и расположение кода "бета"
(например, производственный код Perl в /usr/code/scripts
, код BETA Perl находится в /usr/code/beta/scripts
; производственные библиотеки Perl находятся в /usr/code/lib/perl
, а версии BETA этих библиотек находятся в /usr/code/beta/lib/perl
, есть ли простой способ для меня настройка?
Точные требования:
-
Код должен быть ТОЛЬКО в производстве и месте BETA.
Чтобы прояснить, для продвижения любого кода (библиотеки или script) из BETA в производство, ТОЛЬКО вещь, которая должна произойти, буквально выдаёт команду
cp
из BETA на prod location - и имя файла AND содержимое файла должно оставаться идентичным. -
Версии сценариев BETA должны вызывать другие сценарии BETA и библиотеки BETA (если существуют) или производственные библиотеки (если библиотеки BETA не существуют)
-
Пути кода должны быть одинаковыми между BETA и производством, за исключением базового каталога (
/usr/code/
vs/usr/code/beta/
) -
Сценарии должны находиться под одним базовым каталогом , но они могут находиться в своих подкаталогах на произвольном уровне глубины (это исключает классическое решение
use lib "$FindBin::Bin/../lib"
из раздела 31.13 Использовать lib из "Программирование Perl" )
Я расскажу, как мы решили проблему как ответ на этот вопрос, но я хотел бы знать, есть ли лучший способ.