如果我的 Perl 代码有一个生产代码位置和“beta”代码位置(例如生产 Perl 代码我们在/usr/code/scripts
,BETA Perl 代码在/usr/code/beta/scripts
;生产 Perl 库在/usr/code/lib/perl
并且这些库的 BETA 版本在/usr/code/beta/lib/perl
,对我来说有一个简单的方法吗?实现这样的设置?
确切的要求是:
该代码在生产和 BETA 位置中必须相同。
澄清一下,要将任何代码(库或脚本)从 BETA 升级到生产,唯一需要发生的事情就是
cp
从 BETA 向 prod 位置发出命令——文件名和文件内容都必须保持相同。BETA 版本的脚本必须调用其他 BETA 脚本和 BETA 库(如果存在)或生产库(如果 BETA 库不存在)
BETA 和生产环境之间的代码路径必须相同,但基目录 (
/usr/code/
vs/usr/code/beta/
) 除外脚本必须全部位于同一个基目录下,但它们可能位于任意深度级别的子目录中(这排除了
use lib "$FindBin::Bin/../lib"
第 31.13 节中的经典解决方案。使用"Programming Perl"的lib)
我将介绍我们如何解决这个问题作为这个问题的答案,但我想知道是否有更好的方法。