欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Perl中use和require用法對(duì)比分析

 更新時(shí)間:2013年02月05日 15:07:11   作者:  
Perl 中的use和require,都是用來(lái)加載和引用Perl的模塊,或者是子程序,區(qū)別在于Perl use是在當(dāng)前默認(rèn)的里面去尋找,一旦模塊不在指定的區(qū)域內(nèi)的化,用Perl use是不可以引入的

Perl use和require用法對(duì)比

對(duì)比(一)說(shuō)明:
這兩個(gè)函數(shù)都是一個(gè)意思,加載和引用Perl的模塊,或者是子程序,

區(qū)別在于Perl use是在當(dāng)前默認(rèn)的里面去尋找,一旦模塊不在指定的區(qū)域內(nèi)的化,用Perl use是不可以引入的

第一、Perl use引入的名稱(chēng)不需要后綴名,而require需要
第二、Perl use語(yǔ)句是編譯時(shí)引入的,require是運(yùn)行時(shí)引入的
第三,Perl use引入模塊的同時(shí),也引入了模塊的子模塊。而require則不能引入,要在重新聲明

Perl use my

my中包含了一個(gè)Module.pm

而require 則需要引入requiremy requiremy::Module.pm
如果不想讓Perl use引入Module.pm則可以用Perl userequire()加一對(duì)括號(hào)來(lái)說(shuō)明即可。
第四用Perl use引入模塊是趨勢(shì),但是也不能說(shuō)require沒(méi)有存在的必要,視具體情況而定。

對(duì)比(二)說(shuō)明

區(qū)別一:跟require不同的是,Perl use只能用于模塊的包含,也就是.pm文件。
比如:
Perl useMyModule;
實(shí)際上,編譯器將從@INC指定的目錄下去尋找MyModule.pm模塊。如果模塊名稱(chēng)中包含::雙冒號(hào),該雙冒號(hào)將作為路徑分隔符,相當(dāng)于Unix下的/或者Windows下的。如:
Perl useMyDirectory::MyModule;
編譯器將從@INC指定的目錄下的MyDirectory子目錄去尋找MyModule模塊,類(lèi)似如下路徑:
C:\Perl\lib\MyDirectory
C:\Perl\ext\lib\MyDirectory
C:\Perl\site\lib\MyDirectory

區(qū)別二:兩個(gè)都是包含,但是包含的條件是不一樣的。require包含是發(fā)生在程序運(yùn)行期,而Perl use包含是發(fā)生在編譯期。學(xué)過(guò)C/C++的人比較容易理解。
下面的例子是錯(cuò)誤的:  

復(fù)制代碼 代碼如下:

Perl useConfig; 
if($Config{'osname'}eq"MSWin32")
 {  Perl useWin32Module;  }
 else  {  Perl useUnixModule;  }

正因?yàn)镻erl use是發(fā)生在編譯期,代碼沒(méi)有執(zhí)行,所以$Config變量的值是無(wú)法判斷的。在內(nèi)部,Perl use其實(shí)調(diào)用了require和import靜態(tài)函數(shù)。import()函數(shù)告訴包哪些特征將要被導(dǎo)入當(dāng)前包中,這意味著用之前不必驗(yàn)證函數(shù)或者變量是否合法。而require是不會(huì)調(diào)用import()的。

相關(guān)文章

最新評(píng)論