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