内容

名称

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 对象,以指示读取 prefs 文件时成功或失败。

通用

所有结果都共享一些通用属性。

类型

successwarningfatal

文件

从中读取这些首选项的文件,或指代此错误的文件(相对文件名)。

扩展名

文件的扩展名,它决定如何加载文件

dir

文件读取的目录

abs

文件的绝对路径

Errors

错误结果(警告和致命)包含

msg

错误消息(通常是$!或 YAML 错误)

Successes

成功结果包含

prefs

一个包含 CPAN::Distroprefs::Pref 对象的数组引用

PREFS

CPAN::Distroprefs::Pref 对象代表单个 distroprefs 文档。它们在 find()success 结果中自动构建。

data

首选项信息作为哈希引用,适合例如传递给 Kwalify

match_attributes

返回有效匹配属性的列表(参见 CPAN 中的 Distroprefs 部分)

目前:env perl perlconfig distribution module

has_any_match

如果此首选项有任何 'match' 属性,则为 true

has_valid_subkeys

如果此首选项具有 'match' 属性并且至少有一个有效的匹配属性,则为 true

matches

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

如果此首选项与传入的哈希引用匹配,则为 true,该哈希引用必须对每个 match_attributes(如上)都有一个值

LICENSE

本程序是自由软件;您可以根据与 Perl 本身相同的条款重新发布和/或修改它。