Я пытаюсь написать функцию, которая проверяет имя пользователя для буквенно-цифрового значения, а в случае отказа он должен войти мое пользовательское сообщение об ошибке и возвращает 0, вызываемой функции вместо фильеры-ков:Почему моя подпрограмма Perl возвращает false, даже если параметры действительны?
sub insertUser{
my ($username, $password, $email, $name) = validate_pos(@_,
{ type => SCALAR,
regex => qr/^\w+$/,
on_fail => { $err->error("username validation failed"),return 0 }
},
{ type => SCALAR },
{ type => SCALAR },
{ type => SCALAR ,optional => 1,default => 99});
print "$username, $password, $email, $name ";
}
С приведенным выше кодом я столкнулся с проблемой, так как она все еще возвращает 0 в случае успеха. Может кто-нибудь, пожалуйста, помогите мне в этом отношении и может ли кто-нибудь объяснить мне, почему это так?
вопрос названия не вопрос не капитализированный неискушенные существительные прилагательные трудные чтения – daotoad
@ user267074 См. мой отредактированный ответ bel ow, который возвращает «0» для отказа. –
Было бы полезно отметить, что вы используете Params :: Validate. – Ether