Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么prefix=/path/to/perllib不足以设置PERL5LIB?_Perl - Fatal编程技术网

为什么prefix=/path/to/perllib不足以设置PERL5LIB?

为什么prefix=/path/to/perllib不足以设置PERL5LIB?,perl,Perl,如果我创建一个Perl模块并将其安装为 perl Makefile.PL prefix=/path/to/perllib 然后我希望能够将PERL5LIB设置为/path/to/perllib,并找到模块。事实似乎并非如此。模块安装到/path/to/perllib/site_perl/5.8.5/,因此PERL5LIB必须设置为(或传递到“use lib”) 我在如何安装模块或如何设置PERL5LIB方面是否做错了什么?不,这就是它的工作原理。前缀表示安装的根目录,但库目录通常位于该目录结构

如果我创建一个Perl模块并将其安装为

perl Makefile.PL prefix=/path/to/perllib
然后我希望能够将PERL5LIB设置为/path/to/perllib,并找到模块。事实似乎并非如此。模块安装到/path/to/perllib/site_perl/5.8.5/,因此PERL5LIB必须设置为(或传递到“use lib”)


我在如何安装模块或如何设置PERL5LIB方面是否做错了什么?

不,这就是它的工作原理。前缀表示安装的根目录,但库目录通常位于该目录结构中更深的位置


如果您安装了具有相同前缀的多个模块,那么它们都应该能够使用相同的
PERL5LIB
值。

不,这就是它的工作原理。前缀表示安装的根目录,但库目录通常位于该目录结构中更深的位置


如果您安装了具有相同前缀的多个模块,那么它们都应该能够使用相同的
PERL5LIB
值。

什么版本的perl?您只需指定“site_perl”之前的路径。对于不在site_perl下的库,还应指定“perllib”之前的路径。较新版本的perl(5.8或更高版本?)更适合只指定这两个目录,而不必指定版本和体系结构目录。

什么版本的perl?您只需指定“site_perl”之前的路径。对于不在site_perl下的库,还应指定“perllib”之前的路径。较新版本的perl(5.8或更高版本?)更适合只指定这两个目录,而不必指定版本和体系结构目录。

您将PREFIX=和LIB=混为一谈

发行版不仅仅由模块组成。例如,文档没有安装在与模块本身相同的目录中。PREFIX=告诉Perl所有组件的基本路径

LIB=告诉Perl在哪里安装模块

使用(例如)

那你就用

export PERL5LIB=~/lib/perl5

您将PREFIX=和LIB=混为一谈

发行版不仅仅由模块组成。例如,文档没有安装在与模块本身相同的目录中。PREFIX=告诉Perl所有组件的基本路径

LIB=告诉Perl在哪里安装模块

使用(例如)

那你就用

export PERL5LIB=~/lib/perl5
长话短说,使用而不是
前缀
。它的工作原理更像其他安装程序的
--前缀
,并创建可预测的安装模式。然后您可以将
PERL5LIB
设置为
/lib/perl5
,然后转到

说明:

前缀的行为很复杂,并且与Perl的使用方式密切相关 配置。由此产生的安装位置因机器而异 甚至在同一台机器上安装不同的Perl。正因为如此,它的 难以记录prefix将模块放置在何处

相比之下,INSTALL_BASE具有可预测、易于解释的安装位置。 既然Module::Build和MakeMaker都有安装库,那么就没有什么理由了 使用前缀而不是保留现有安装位置。如果你 正在开始新的Perl安装,我们鼓励您使用INSTALL_BASE。如果你 通过前缀安装现有安装,考虑将其移动到 安装结构与INSTALL_BASE匹配并使用它

长话短说,使用而不是
前缀
。它的工作原理更像其他安装程序的
--前缀
,并创建可预测的安装模式。然后您可以将
PERL5LIB
设置为
/lib/perl5
,然后转到

说明:

前缀的行为很复杂,并且与Perl的使用方式密切相关 配置。由此产生的安装位置因机器而异 甚至在同一台机器上安装不同的Perl。正因为如此,它的 难以记录prefix将模块放置在何处

相比之下,INSTALL_BASE具有可预测、易于解释的安装位置。 既然Module::Build和MakeMaker都有安装库,那么就没有什么理由了 使用前缀而不是保留现有安装位置。如果你 正在开始新的Perl安装,我们鼓励您使用INSTALL_BASE。如果你 通过前缀安装现有安装,考虑将其移动到 安装结构与INSTALL_BASE匹配并使用它