麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Perl > 正文

Perl中use和require用法對比分析

2020-06-04 20:28:04
字體:
來源:轉載
供稿:網友

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()的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲第五色综合网 | 午夜视频在线 | 中文字幕在线观看精品 | 国产精品视频一区二区噜噜 | 日本在线看片 | 少妇淫片免费一级毛片 | 草草久久久 | 99re热视频这里只精品 | 亚洲人成网站免费播放 | 久久久久女人精品毛片九一 | 日本视频免费观看 | 国产chinesehd精品91| 国产一区精品在线观看 | 欧美在线观看黄色 | 国产免费黄网 | 操毛片| 五月天影院,久久综合, | www.9191.com| 国产精品欧美日韩一区二区 | 一区二区三区在线观看视频 | 免费看污视频在线观看 | 中日韩乱码一二新区 | 国产一级毛片视频在线! | a一级黄| hd性videos意大利复古 | 成人精品久久 | 日本成人在线免费 | 国产精品99久久99久久久二 | 黄网站免费在线看 | 国产午夜精品理论片a级探花 | 欧美在线观看视频一区二区 | 久久久久九九九女人毛片 | 一级免费特黄视频 | 九色中文字幕 | 国产精品视频2021 | 黄色大片高清 | 色播视频网站 | 欧美日本在线视频 | 久色精品视频 | 国产视频在线播放 | 亚洲精品一区二区三区大胸 |