@INC中的各种目录用于什么?

jus*_*ime 5 perl

如果我理解模块最终在@INC下的各个目录中结束,那将有助于我理解我所拥有的模块

在Windows上的ActiveState下,它是相当清楚的

C:/Perl/lib
C:/Perl/site/lib
Run Code Online (Sandbox Code Playgroud)

第一个是核心Perl的东西,而第二个是我通过PPM安装的东西(我有这个吗?)

然而,在Debian下,似乎更加复杂

/etc/perl
/usr/local/lib/perl/5.8.4
/usr/local/share/perl/5.8.4
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.8
/usr/share/perl/5.8
/usr/local/lib/site_perl
Run Code Online (Sandbox Code Playgroud)

这么多目录的原因是什么?

yst*_*sth 7

请参阅Debian关于路径的Perl策略,了解除了第一个和最后一个之外的所有内容的基本原理和使用.我猜这/etc/perl将是仅包含配置数据的模块和/usr/local/lib/site_perl用于与非Debian打包的Perl共享非架构相关,非版本相关模块的模块?


Cha*_*ens 4

根据这些目录中的文件以及我对 Perl 的了解,我想说它们是这样分解的:

  • /etc/perl- 一些 Perl 模块写出配置文件。其中两个示例是libnetCPAN发行版中的模块。基于 Debian 的机器将这些配置文件存储在这里。
  • /usr/local/lib/perl/5.8.4- 这是安装在软件包系统之外的特定于平台的文件所在的位置。
  • /usr/local/share/perl/5.8.4- 这是安装在软件包系统之外的与平台无关的文件所在的位置。
  • /usr/lib/perl5- 这是软件包系统安装的特定于平台的文件所在的位置。
  • /usr/share/perl5- 这是软件包系统安装的与平台无关的文件所在的位置。
  • /usr/lib/perl/5.8- 这些是特定于平台的文件,是核心的一部分
  • /usr/share/perl/5.8- 这些是与平台无关的文件,是核心的一部分
  • /usr/local/lib/site_perl- 这是您可以安装自己的模块的地方(如果他们没有 CPAN 风格的安装程序,但他们确实应该这样做)。