perl模块安装的自定义路径方法

发布时间:2020-05-22编辑:脚本学堂
本文介绍下,在perl中安装模块时自定义路径的实现方法,分享几个示例代码,供大家学习参考。

本节内容:
perl模块安装、自定义路径。

一,安装perl模块到非自定义目录
如何安装perl模块到指定的路径呢?
1) Use INSTALL_BASE / --install_base
MakeMaker (as of 6.31) and Module::Build (as of 0.28) both can install to the same locations using the "install_base" concept. See "INSTALL_BASE" in ExtUtils::MakeMaker for details. To get MM and MB to install to the same location simply set INSTALL_BASE in MM and --install_base in MB to the same location.
   

复制代码 代码示例:
perl Makefile.PL INSTALL_BASE=/whatever
    perl Build.PL    --install_base /whatever

2) Use PREFIX / --prefix
Module::Build 0.28 added support for --prefix which works like MakeMaker's PREFIX.
 

复制代码 代码示例:
    perl Makefile.PL PREFIX=/whatever
    perl Build.PL    --prefix /whatever

二,使用自定义目录下的模块
 

复制代码 代码示例:

BEGIN {
    push (@INC,'/opt/perl/lib');
}

BEGIN {
    unshift @INC,'/opt/perl/lib';
}
 
use lib '/opt/perl/lib';
use local::lib; # sets up a local lib at ~/perl5
use local::lib '~/foo'; # same, but ~/foo

# Or...
use FindBin;
use local::lib "$FindBin::Bin/../support";  # app-local support library
use FindBin;
use lib "$FindBin::Bin/../lib";
 
# or
use FindBin qw($Bin);
use lib "$Bin/../lib";

三,查找已经安装的模块,可用shell/ target=_blank class=infotextkey>shell脚本与perl代码来实现。

例2,Shell 脚本:
 

复制代码 代码示例:
find `perl -e ‘print “@INC”‘` -name ‘*.pm’ -print

例2,Perl 脚本:
 

复制代码 代码示例:
#!/usr/bin/perl
# site: www.jb200.com
#
use strict;
use ExtUtils::Installed;
my $inst = ExtUtils::Installed->new();
my @modules = $inst->modules();
foreach (@modules) {
my $ver = $inst->version($_) || “???”;
printf( “%-12s — %sn”, $_, $ver );
}
exit 0;