模块:图书馆

名称

lib-在编译时操作@INC

简介

使用lib LIST;无库LIST;

说明

这是一个简单的小模块,它简化了编译时对@INC的操作。

它通常用于向perl的搜索路径添加额外的目录,以便以后使用要求语句将查找不位于perl默认搜索路径上的模块。

将目录添加到@INC

到的参数使用lib添加到perl搜索路径的开头。

使用lib LIST;

几乎和说的一样

开始{unshift(@INC,LIST)}

对于LIST中的每个目录(此处称为$dir),lib模块还检查是否存在名为$dir/$archname/auto的目录。如果是这样,则假定$dir/$archname目录是相应的特定于体系结构的目录,并将其添加到$dir.lib.pm前面的@INC中,还将检查名为$dir/$版本和$dir/$version/$archname的目录是否存在,并将这些目录添加到@INC。

的当前值$域名可以通过以下命令找到:

perl-V:域名

获取当前值的相应命令$版本是:

perl-V:版本

为了避免内存泄漏,@INC中的所有尾部重复项都将被删除。

从@INC删除目录

通常只应将目录添加到@INC。如果需要从@INC中删除目录,请注意只删除那些您自己添加的目录,或者您确定脚本中的其他模块不需要的目录。其他模块可能添加了正确操作所需的目录。

这个无库语句从@INC中删除每个命名目录的所有实例。

对于LIST中的每个目录(此处称为$dir),lib模块还会检查是否存在名为$dir/$archname/auto的目录。如果是这样,则假定$dir/$archname目录是相应的特定于体系结构的目录,并从@INC中删除。lib.pm还检查名为$dir/$版本和$dir/$version/$archname的目录是否存在,并从@INC中删除这些目录。

恢复原始@INC

首次加载lib模块时,它会在数组中记录@INC的当前值@库::ORIG_INC。要将@INC恢复到该值,您可以说

@INC=@lib::ORIG_INC;

CAVEATS(洞穴)

为了使lib.pm小而简单,它只适用于Unix文件路径。这并不意味着它只适用于Unix,但非Unix用户必须首先将他们的文件路径转换为Unix约定。

#VMS用户希望将[.stuff.moo]放入#他们的@INC会写使用lib“stuff/moo”;

笔记

将来,该模块可能会使用File::Spec来确定路径,就像现在在Mac OS上一样(Unix样式或Mac样式的路径可以工作,Unix样式的路径在添加到@INC之前会正确转换为Mac样式路径)。

如果您尝试按如下方式将文件添加到@INC:

使用lib“this_is_a_file.txt”;

图书馆将对此发出警告。唯一的例外是具有.票面价值打算用作库的扩展。

另请参阅

FindBin-可选模块,处理与源文件相关的路径。

PAR-可处理的可选模块.票面价值文件作为Perl库。

作者

Tim Bunce,1995年6月2日。

图书馆由perl5-porters维护。请直接向规范邮件列表咨询任何问题。不过,任何适用于CPAN发行版的内容都可以发送给其维护者。

维护人员:Perl5-Porters<网址:perl5-porters@perl.org>

CPAN版本的维护者:Steffen Mueller<smueller@cpan.org>

版权和许可

自perl 5.001以来,这个包一直是perl核心的一部分。它已单独发布给CPAN,因此较旧的安装可以从错误修复中受益。

这个包与perl内核具有相同的版权和许可证。