一 安裝perl模組到非自訂目錄
How do I get MakeMaker and Module::Build to install to the same place? Module::Build, as of 0.28, supports two ways to install to the same location as MakeMaker. 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";
三 尋找已經安裝的模組 1. Shell 指令碼: find `perl -e ‘print “@INC”‘` -name ‘*.pm’ -print 2. Perl 指令碼: #!/usr/bin/perl use strict; use ExtUtils::Installed; my $inst = ExtUtils::Installed->new(); my @modules = $inst->modules(); foreach (@modules) { my $ver = $inst->version($_) || “???”; printf( “%-12s — %s\n”, $_, $ver ); } exit 0;
完。