是否有现有的 CPAN 库能够从基本测试的结构化输入创建代码引用,从而将传递的数据结构减少为真/假值?它需要能够将传递的属性从构造函数映射到传递的数据结构的属性(即,在下面的示例中[attribute => 'something']
映射到$_->{something}
传递的标量)并针对它们执行测试。
我可以写一些东西,但我真的很惊讶我在 CPAN 上找不到任何东西来处理它。有谁知道图书馆可以做这种事情?
my @def = ( [ [ attribute => 'something' ], '>', 50 ],
'and',
[ [ attribute => 'something_else' ], 'eq', 'match' ],
);
my $coderef = Reducer->new(@def);
my @items = ( { something => 75,
something_else => 'match',
},
{ something => 20,
something_else => 'match',
},
{ something => 75,
something_else => 'no match',
},
{ something => 90,
something_else => 'match',
},
);
for my $item (@items) {
$coderef->($item) ? say 'true' : say 'false';
};
输出:
true
false
false
true