Я использую модуль Params::Validate
в своей функции. Для одного из вариантов, O проверяется с помощью обратного вызова. Теперь мне нужно поймать этот отказ и заменить его каким-то специальным сообщением. Как это можно достичь? Я попытался использовать опцию on_fail, но это не уловило ошибку.Params :: Проверка ошибки обработки обратного вызова
0
A
ответ
1
Params::Validate будет генерировать общую ошибку, если вы вернете ложное значение. Чтобы предоставить свое собственное сообщение об ошибке, просто позвольте обратному сообщению die
.
Обратный вызов должен возвращать истинное значение, если это значение действительно. Если нет, он может вернуть false или умереть. Если вы вернете false, общее сообщение об ошибке будет выведено Params :: Validate.
Документы также дают хороший пример кода.
validate( @_, { foo => { callbacks => { 'smaller than a breadbox' => sub { shift() < $breadbox }, 'green or blue' => sub { return 1 if $_[0] eq 'green' || $_[0] eq 'blue'; die "$_[0] is not green or blue!"; } } } } );
Отображение кода будет более полезным для вас, чтобы получить ответ. – serenesat