2013-01-07 65 views

回答

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包含多個包的文件並不罕見。無論是單個模塊,多個模塊還是兩者都有爭議。

相關問題