3

我正在尝试将一些 Perl 模块安装到非标准位置,我们称之为/non/standard/location. 我用了

perl Makefile.PL PREFIX=/non/standard/location
make;make install

安装它们。

在使用该模块的脚本中,似乎有必要指定一个包含 Perl 版本的长目录路径,如下所示:

#!/usr/local/bin/perl
use lib '/non/standard/location/lib/perl5/site_perl/5.8.9/';
use A::B;

是否有任何use lib或其他我可以使用的语句不是那么长和冗长,并且不包括 Perl 的实际版本,以便我不必返回并在程序中编辑它,如果版本Perl 升级了吗?

4

2 回答 2

5

可能无法解决您所有的问题,但是您知道local::lib吗?当它在系统 perl 中可用时,您只需use local::lib. 如果不:

use lib glob '~/perl5/lib/perl5';
use local::lib;

这可能有点限制——不确定它在 Windows 上是如何工作的——但对于我的目的来说已经足够了。当然,如果您可以在脚本运行之前设置环境(.bashrcSetEnv),您可以忘记use lib glob,因为正确的路径已经设置在PERL5LIB.

于 2010-06-18T03:43:41.407 回答
0

目前我已经通过以下处方安装,这似乎可以解决问题。

perl Makefile.PL --no-manpages --skipdeps PREFIX=/non/system/location INSTALLSITELIB=/non/system/location/lib INSTALLSITEBIN=/non/system/location/bin INSTALLMAN1DIR=/non/system/location/man/man1 INSTALLMAN3DIR=/non/system/location/man/man3

我欢迎对此提出任何建设性的批评。我想使用--no-manpages,但INSTALLMAN1DIR无论如何似乎都是必要的。

于 2010-06-18T03:55:21.553 回答