如何使用Perl创建条件库?

Dav*_*oby 1 perl

我有自制的#Perl库,我正在从一台机器移动到另一台机器,并且各个路径的路径也不尽相同.具体来说,在旧机器上,它们存在于/ home/foo/lib /中,而它们正在新机器上移动到/ group/bar/apps/lib,我现在希望将它们放在像/ home /这样的东西中我的/ dev /工具/ lib中.

我们所做的是有多个使用lib行./ home/foo在新机器上不可用,而/ group/bar不是旧机器上的目录,所以当它看到这个时 -

use lib '/home/foo/lib/' ;
use lib '/group/bar/apps/lib' ;
use Tools::Foo ;
Run Code Online (Sandbox Code Playgroud)

- 一切都好.

问题是,它们彼此链接,我宁愿在/ home/me/dev/Tools/lib中没有东西从/ group/bar/apps/lib加载程序,当我将这些东西移到生产中时,我不想有任何指向〜/ me/dev的东西.我希望在将代码移动到生产环境中时不必修改代码,因此,当部署所有代码时,diff /group/bar/apps/lib/Tools/Foo.pm /home/me/dev/Tools/lib/Tools/Foo.pm它将是空的.

那么,我如何为多个条件库位置设置东西呢?

ike*_*ami 11

选项:

  1. 正确安装模块.

  2. 将模块放在相对于脚本的位置

    use FindBin qw( $RealBin );
    use lib "$RealBin/../lib";  # Or whatever.
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用环境变量PERL5LIB而不是use lib.

  4. 可以放置语句sitecustomize.pl(如果sitecustomize.plperl构建时启用了支持).