ActivePerl CPAN 和 .tshrc

ActivePerl CPAN and .tshrc

我在 Mac OS X 上安装了 ActivePerl (5.24.3.1),导致 'havoc' 出现 CPAN 安装。在 "sites/lib/" 中,新安装与 "core CPAN.pms" 分开。

无论如何,我已经在我的目录 .cshrc 中添加了以下内容

setenv PERL5LIB PERL5LIB:/usr/local/ActivePerl-5.24/lib:/usr/local/ActivePerl-5.24/site/lib

我编的,但似乎一切正常。它是有效代码吗?

该行正确地附加到 tcsh 中的环境变量 PERL5LIB

来自 man tcsh 我的系统

setenv [name [value]]

Without arguments, prints the names and values of all environment variables. Given name, sets the environment variable name to value or, without value, to the null string.

tcsh 中的环境变量可以设置为表示列表的值,通过用冒号分隔条目 (:)。因此说 PERL5LIB:... 是一种附加到现有值 PERL5LIB 的方法。

in perlrun所述,PERL5LIB

A list of directories in which to look for Perl library files before looking in the standard library and the current directory. Any architecture-specific and version-specific directories, such as version/archname/, version/, or archname/ under the specified locations are automatically included if they exist, with this lookup done at interpreter startup time.

但请注意,不再在“当前目录”中搜索库,这是现代 Perl 版本中的安全增强功能。

因此您的行将 /usr/local/ActivePerl 位置添加到在您的 Perl 版本中设置的默认路径。

我不知道 ActivePerl 如何以及为什么在 Mac OS X 上“对 CPAN 安装造成严重破坏”(?)。我想你安装了另一个 Perl(通过你提到“CPAN installantions”),但我很困惑你现在使用的是哪个,一旦 ActiveState 存在(以及?) .

总而言之,@INC 命令行查询的输出清楚地表明 ActiveStates Perl 自动查看 CPAN 库,因此 .cshrc 中的 "setenv PERL5LIB PERL5LIB:....:...." 将其复制为 @ikegami确定。

Perl 的最新稳定 ActiveStates 实现工作正常,主要问题是 'sites/lib' 目录的权限(OS X 安装不是 Linux)。

但是,我的编码应用程序(BBEdit,版本 12.6.1)确实需要在 "run" 函数运行之前在 .cshrc 中设置 PERL5LIB。所以 @zdim 响应在上下文中很有用。感谢两位回复者,感激不尽。