Я использую Params :: Validate для проверки, но в разделе обратных вызовов вместо определения прямой анонимной функции, если я пытаюсь дать ссылку на эту анонимную функцию, она напрямую переходит к регистрации ошибок область без печати сообщения внутри блока (в случае передачи правильного значения).
use Params::Validate qw(:all);
our $attributeCallback = sub {
my $parameter = shift;
$parameter =~ m/^\w+$/i ;
};
sub getSingleValue {
eval {
my ($domainName, $attribute) = validate_pos( @_,
{
type => SCALAR,
callbacks => {
'Domain name validation failed' => &$attributeCallback
}
},
{
type => SCALAR,
callbacks => {
'Attribute name validation failed' => sub {
$_[0] =~ m/[\w.-]+$/i }
}
}
);
print "domain name is $domainName and attribute is $attribute";
1;
}
or do {
# catch
# Error Logging Area
};
}
Фактическая зарегистрированная ошибка - что-то вроде «Неопределенная подпрограмма» ...
Может кто-нибудь сказать, почему это происходит?