关于BEGIN {推....}在Perl

问题描述:

在一些Perl程序,我看到他们用关于BEGIN {推....}在Perl

BEGIN 
{ 
push(@INC, '/home/usr1/Modules'); 
} 

开始我想知道这是什么部分打算做什么?

+2

[Perl的@INC是如何构建的? (又名什么是影响Perl模块搜索的方式?)](http://*.com/questions/2526804/how-is-perls-inc-constructed-aka-what-are-all-the影响,在哪里) – DVK 2012-02-16 16:05:08

这可确保目录/home/usr1/Modules中包含的任何perl模块都可供使用。

当您输入use ModuleName时,Perl会搜索@INC中的每个目录中的文件ModuleName.pm

+3

但为什么不简单:使用lib'/ my/path'?从1995年开始可用于核心..(http://perldoc.perl.org/lib.html) – 2012-02-16 15:03:40

+1

是的,那也可以。老实说,我所有的模块都是通过在我的bash配置文件中设置环境变量'PERL5LIB'来实现的,所以这些东西都不是真正必需的 – asf107 2012-02-16 15:08:15

+2

@ asf107,在污染模式下PERL5LIB被忽略,这对您来说可能永远不会有问题但可能是安全环境中的问题。 – 2012-02-16 15:46:08