有没有办法避免将Perl版本号放入非标准位置的Perl模块的"use lib"行?

3 perl perl-module

我试图将一些Perl模块安装到非标准位置,让我们调用它/non/standard/location.我用了

perl Makefile.PL PREFIX=/non/standard/location
make;make install
Run Code Online (Sandbox Code Playgroud)

安装它们.

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

#!/usr/local/bin/perl
use lib '/non/standard/location/lib/perl5/site_perl/5.8.9/';
use A::B;
Run Code Online (Sandbox Code Playgroud)

是否有任何use lib或其他声明我可以使用哪个不长且冗长,并且不包括Perl的实际版本,以便我不必返回并编辑此程序如果版本Perl的升级?

zou*_*oul 5

可能没有解决你的所有问题,但你知道local :: lib吗?当它在系统perl中可用时,你可以use local::lib.如果不:

use lib glob '~/perl5/lib/perl5';
use local::lib;
Run Code Online (Sandbox Code Playgroud)

这可能有点限制 - 不确定它在Windows上是如何工作的 - 但它对我的目的来说已经足够了.当然,如果你可以设置环境脚本运行之前(.bashrc,SetEnv等等),你可以忘掉的use lib glob,因为正确的道路将在已经设置PERL5LIB.