10
A
回答
14
Namespace
是一般的計算的術語,意思爲一組不同的標識符的容器。相同的標識符可以獨立出現在不同的名稱空間中,並引用不同的對象,並且明確標識對象的標準標識符由名稱空間和標識符組成。
Perl的實現使用package
關鍵字名稱空間。
一個Perl 模塊是完全不同的事。這是一段Perl代碼,可以通過關鍵字use
將它合併到任何程序中。文件名應該以.pm
結尾 - 對於P erl M模塊 - 它包含的代碼應該有一個package
語句,使用與文件名相同的包名,包括其路徑。例如,寫入名爲My/Useful/Module.pm
的文件中的模塊應該有一個package
語句,如package My::Useful::Module
。
您可能一直在想的是類這也是一個通用計算術語,這次意味着一種面向對象的數據。 Perl用其作爲包類名,以及面向對象的模塊都會有構造子程序 - 通常被稱爲new
- 這將參考返回到已經blessed
,使其在一個面向對象的方式表現數據。絕不是所有的Perl模塊都是面向對象的:一些可以是簡單的子程序庫。
16
的package
指令設置的命名空間。因此,名稱空間也稱爲包。
Perl沒有正式的模塊定義。有很大的差異,但以下模塊的絕大多數:
- 擴展名爲
.pm
的文件。 - 該文件包含一個涵蓋整個代碼的單個
package
聲明。 (但請參閱下面的內容。) - 該文件根據名稱空間
package
命名。 - 該文件預計在執行時返回一個真值。
- 該文件預計每個解釋器不會執行一次以上。
遇到.pm
包含多個包的文件並不罕見。無論是單個模塊,多個模塊還是兩者都有爭議。
相關問題
- 1. Linux中的insmod模塊和rpm包之間有什麼區別
- 2. Swift包和模塊之間有什麼區別?
- 3. 使用Zend Framework,模塊和包裝之間有什麼區別
- 4. JSDoc:模塊和名稱空間之間的關係是什麼
- 5. Azure AD模塊和MS Online模塊之間有什麼區別
- 6. JAR和包之間有什麼區別?
- 7. 根名稱空間和程序集名稱之間的區別
- 8. 重新模塊中的組和組之間有什麼區別?
- 9. lib和帶有autoconf的模塊之間有什麼區別
- 10. 軟件包名稱和Apple App商店名稱之間的區別是什麼?
- 11. vanilla css和模塊化css之間有什麼區別
- 12. 函數和模塊之間有什麼區別?
- 13. C#中的名稱空間和Java中的包之間的區別
- 14. 模式名稱空間和WPF中的程序集引用有什麼區別?
- 15. 默認命名空間和目標名稱空間之間的區別?空名稱空間?
- 16. 「./file」名稱和「../文件名」之間的區別是什麼
- 17. 在Perl中,「if defined $ count」和「if $ count」之間有什麼區別?
- 18. Perl中的對象和類之間有什麼區別?
- 19. sqlite_master中名稱和tbl_name之間的區別是什麼?
- 20. '收縮空間緊湊'和'聚結'之間有什麼區別?
- 21. 類和名稱空間之間的區別?
- 22. >和空間有什麼區別?
- 23. 「層」和「層」之間有什麼區別?
- 24. Tableau和QlikView之間有什麼區別
- 25. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 26. @Entity和@embeddable之間有什麼區別
- 27. ContentObservable和DataSetObservable之間有什麼區別?
- 28. touchmove和gesturechange之間有什麼區別?
- 29. :notification.flags和notification.defaults之間有什麼區別?
- 30. proc和lambda之間有什麼區別?
我想,你應該讀作[駱駝書(http://en.wikipedia.org/wiki/Programming_Perl)。它將揭示Perl的許多興趣特徵 – gaussblurinc