在$ work,我们在中心位置维护一组Perl模块,以便通过PERL5LIB轻松包含。由于前面有重新安装,我们需要提供32位和64位架构的模块,我们想知道是否最好将它们安装到同一目录树中,依赖于$ archname子目录,或者保留两种架构完全分开并复制每个模块。
我在研究涉及$ archname的Perl模块查找过程的内部工作方面并不是很成功,也许有人可以指出我正确的方向。
根据您的经验,这两种方法的优缺点是什么?
答案 0 :(得分:3)
来自perldoc lib:
使用use lib LIST;
对于LIST中的每个目录(称为
$dir
这里也是lib模块 检查是否有一个名为的目录$dir/$archname/auto
存在。如果是这样$dir/$archname
目录是 假设是对应的 特定于体系结构的目录和 在$dir
前添加到@INC。
lib.pm
也检查目录 叫$dir/$version
和$dir/$version/$archname
存在并且 将这些目录添加到@INC。
恕我直言,它更像是惯用的 - 我敢说,更整洁 - 使用per-architecture子目录,就像Perl的标准库一样。
然而,在您创建一些基本工具/脚本之后,管理您自己的库的每个体系结构的整个树的情况会更加简单。
答案 1 :(得分:1)
在每个系统上单独构建模块,以便只获取所需的文件。或者使用区分架构的包装系统。不要尝试为所有系统提供所有体系结构的文件。