似乎有一個名爲parent
的新編譯指示,與base
大致相同。 parent
如何保證新的(非核心)模塊?我錯過了什麼?Perl 5中父和基有什麼區別?
43
A
回答
47
base
試圖做一件太多的事情—自動處理加載模塊,但也允許從已經加載的類(可能來自名稱不是基於模塊名稱的文件)建立繼承。爲了使其發揮作用,在某些情況下出現了一些令人驚訝的結果。不是打破向後兼容性,而是採用更清晰的語義引入了一個新的替換編譯指示碼parent
。
parent
將成爲5.10.1的核心模塊。
更新:忘記了base
處理fields
(如果你使用的是fields
編譯),其中parent
不做。
34
武裝與來自YSTH信息的額外位,我能看到文檔的差異:
的base
編譯並以下的事情:
- 將指定的包
@ISA
- 使用
require
(除非它檢測到包已被加載)加載與命名包相同名稱的模塊 - 如果模塊帶有th Ë同名的包不存在
- 模具是否有指定的包
- 如果
$VERSION
沒有在指定包中不存在的符號,基地將它設置爲"-1, set by base.pm"
- 初始化姓包的
fields
如果它們存在 - 不叫姓包
進口功能parent
編譯做以下的事情:
- 增加使用
require
- 接受,告訴它不要死,如果用相同名稱的模塊封裝沒有按」選項命名的包
@ISA
- 負載使用相同的名稱命名的包模塊t存在
+4
差不多。 norequire選項只是告訴它不要執行require(所以類必須已經加載)。這意味着它不必捕捉錯誤並決定是否應該抑制它們。 – ysth 2009-05-19 06:17:10
相關問題
- 1. Perl中'for'和'foreach'有什麼區別?
- 2. Perl中的'eq'和'=〜'有什麼區別?
- 3. Perl中grep和map有什麼區別?
- 4. 「perl test.pl」和「./test.pl」有什麼區別?
- 5. 在Strawberry Perl中,perl \ lib和perl \ site \ lib有什麼區別?
- 6. php 4和php 5有什麼區別?
- 7. 父母和@ISA有什麼區別?
- 8. 在JavaScript中,var a = 5有什麼區別。和var a = 5?如
- 9. 有什麼區別`和$(Bash中有什麼區別?
- 10. Perl正則表達式中的\ 1和$ 1有什麼區別?
- 11. 在Perl中`use base`和@ISA有什麼區別?
- 12. 在Perl中,s/^ \ s + //和s/s + $ //有什麼區別?
- 13. Perl中的open和sysopen有什麼區別?
- 14. Perl中的system,exec和反引號有什麼區別?
- 15. 在Perl中,「if defined $ count」和「if $ count」之間有什麼區別?
- 16. Perl中詞法和動態範圍界定有什麼區別?
- 17. 我的($ variableName)和我的$ variableName在Perl中有什麼區別?
- 18. Perl中的對象和類之間有什麼區別?
- 19. Perl中的哈希和哈希引用有什麼區別?
- 20. C和Perl中的system()有什麼區別?
- 21. 在Perl中,`use lib`和`lib-> import`有什麼區別?
- 22. Perl中的新Some :: Class和Some :: Class-> new()有什麼區別?
- 23. Perl中的子程序和腳本有什麼區別?
- 24. 函數調用和goto&NAME在Perl中有什麼區別?
- 25. 在perl中,$ DB :: single = 1和2有什麼區別?
- 26. laravel 5中的Models和Repository有什麼區別?
- 27. base64和MIME base 64有什麼區別?
- 28. ==和===有什麼區別?
- 29. ==和===有什麼區別?
- 30. 有什麼區別? :和||
此外,比較perl -wE'say需要基地'perl -wE'say需要父母' – ysth 2009-05-19 06:22:39