perl是用来干嘛的
Perl中use和require⽤法对⽐分析
Perl use和require⽤法对⽐
这两个函数都是⼀个意思,加载和引⽤Perl的模块,或者是⼦程序,
区别在于Perl use是在当前默认的⾥⾯去寻,⼀旦模块不在指定的区域内的化,⽤Perl use是不可以引⼊的
第⼀、Perl use引⼊的名称不需要后缀名,⽽require需要
第⼆、Perl use语句是编译时引⼊的,require是运⾏时引⼊的
第三,Perl use引⼊模块的同时,也引⼊了模块的⼦模块。⽽require则不能引⼊,要在重新声明
Perl use my
my中包含了⼀个Module.pm
⽽require 则需要引⼊requiremy requiremy::Module.pm
如果不想让Perl use引⼊Module.pm则可以⽤Perl userequire()加⼀对括号来说明即可。
第四⽤Perl use引⼊模块是趋势,但是也不能说require没有存在的必要,视具体情况⽽定。
区别⼀:跟require不同的是,Perl use只能⽤于模块的包含,也就是.pm⽂件。
⽐如:
Perl useMyModule;
实际上,编译器将从@INC指定的⽬录下去寻MyModule.pm模块。如果模块名称中包含::双冒号,该双冒号将作为路径分隔符,相当于Unix下的/或者Windows下的。如:
Perl useMyDirectory::MyModule;
编译器将从@INC指定的⽬录下的MyDirectory⼦⽬录去寻MyModule模块,类似如下路径:
C:\Perl\lib\MyDirectory
C:\Perl\ext\lib\MyDirectory
C:\Perl\site\lib\MyDirectory
区别⼆:两个都是包含,但是包含的条件是不⼀样的。require包含是发⽣在程序运⾏期,⽽Perl use包含是发⽣在编译期。学过C/C++的⼈⽐较容易理解。
下⾯的例⼦是错误的:
复制代码代码如下:
Perl useConfig;
if($Config{'osname'}eq"MSWin32")
{  Perl useWin32Module;  }
else  {  Perl useUnixModule;  }
正因为Perl use是发⽣在编译期,代码没有执⾏,所以$Config变量的值是⽆法判断的。在内部,Perl use其实调⽤了require和import静态函数。import()函数告诉包哪些特征将要被导⼊当前包中,这意味着⽤之前不必验证函数或者变量是否合法。⽽require是不会调⽤import()的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。