2010-11-30 46 views
7

我有幾個CPAN模塊,廣泛使用元編程來減少鍋爐板並減輕重構。如何告訴CPAN(Perl)使用元編程創建的包?

然而,這樣做的結果是有很多程序包是以編程方式創建的,因此CPAN的源代碼中找不到package X::Y::Z;行以查找(然後用於將命名空間添加到先到先得保留的命名空間)。

所以我的問題是,如果有一個讓CPAN知道這些運行時創建的包的首選方式。以下是我目前正在考慮的選項:

  • 手動搜索所有包併爲CPAN創建一個虛擬文件pm以進行索引。
  • 手動搜索,然後更新Build.PL,將它們包含在provides列表中。
  • 一些代碼添加到元編程程序來跟蹤其使用的軟件包,並添加一個勾入到build dist更新providesMETA.yaml

最後的選擇一些其他的部分是什麼當前我傾向於。我想知道這種方法是否存在問題,或者是否有更好的方法使CPAN更新爲完整的軟件包列表。

回答

4

如果我正確閱讀你,這是一個非問題,提供你不要打破其他命名空間。沒有先決條件來聲明每個創建的名稱空間,只有分佈的基本名稱空間和與該分佈關聯的文件。如果您想「保留」某些名稱空間,而不是創建空白的.pm文件,請考慮創建.pod文件和文檔。

+0

至少在我最惡劣的`List :: Gen`的情況下,運行時創建的包中沒有包含任何終端用戶應該直接調用的函數。因此,爲他們提供最終用戶文檔沒有任何意義。我知道沒有必要聲明所有的軟件包名稱,但我認爲讓PAUSE知道它們是最好的做法。 – 2010-12-01 16:06:14

相關問題