目錄

名稱

CPAN::Distroprefs -- 讀取並比對 distroprefs

語法

use CPAN::Distroprefs;

my %info = (... distribution/environment info ...);

my $finder = CPAN::Distroprefs->find($prefs_dir, \%ext_map);

while (my $result = $finder->next) {

    die $result->as_string if $result->is_fatal;

    warn($result->as_string), next if $result->is_warning;

    for my $pref (@{ $result->prefs }) {
        if ($pref->matches(\%info)) {
            return $pref;
        }
    }
}

說明

此模組封裝了 Distroprefs 的讀取,並將其與 CPAN 套件進行比對。

介面

my $finder = CPAN::Distroprefs->find($dir, \%ext_map);

while (my $result = $finder->next) { ... }

建立一個迭代器,用來在給定目錄下的樹狀結構中尋找 distroprefs 檔案。樹狀結構中符合 m/^[._]/ 的目錄會被修剪。

%ext_map 是個雜湊,其金鑰為副檔名,其值為用於載入符合檔案的模組

{
    'yml' => 'YAML::Syck',
    'dd'  => 'Data::Dumper',
    ...
}

每次呼叫 $finder->next 時,迭代器會回傳下列兩個可能的值之一

結果

find() 讀取設定檔時會傳回 CPAN::Distroprefs::Result 物件,以表示成功或失敗。

共用

所有結果都共用一些屬性

類型

successwarningfatal

檔案

讀取這些設定檔的檔案,或此錯誤所指的檔案(相對檔案名稱)

副檔名

檔案的副檔名,用於決定如何載入

目錄

讀取檔案的目錄

絕對路徑

檔案的絕對路徑

錯誤

錯誤結果(警告和致命錯誤)包含

訊息

錯誤訊息(通常是 $! 或 YAML 錯誤)

成功

成功結果包含

設定檔

CPAN::Distroprefs::Pref 物件的陣列參考

PREFS

CPAN::Distroprefs::Pref 物件代表個別的 distroprefs 文件。它們會自動建構為 find()success 結果的一部分。

資料

設定檔資訊,以雜湊參考表示,適合傳遞給 Kwalify 等

match_attributes

傳回有效配對屬性的清單(請參閱 CPAN 中的 Distroprefs 區段)

目前:env perl perlconfig distribution module

has_any_match

如果此設定檔有任何「配對」屬性,則為 true

has_valid_subkeys

如果此設定檔有「配對」屬性,且至少有一個有效的配對屬性,則為 true

matches

if ($pref->matches(\%arg)) { ... }

如果此設定檔與傳入的雜湊參考相符,則為 true,而雜湊參考必須為每個 match_attributes(如上)提供一個值

授權

此程式是自由軟體;您可以在與 Perl 相同的條款下重新散布或修改它。