Существует ли библиотека CPAN, способная создавать кодовые ссылки из структурированного ввода базовых тестов, которые уменьшают переданную структуру данных до значения true / false? он должен быть в состоянии отобразить переданные атрибуты из конструктора на атрибуты переданной структуры данных (то есть в приведенном ниже примере [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