Params ::验证回调失败处理

时间:2015-12-14 12:20:05

标签: perl validation params

我在我的函数中使用Params::Validate模块。对于其中一个选项,我正在使用回调进行验证。现在我需要抓住这个失败并用一些自定义消息替换它。怎么能实现这一目标?我尝试使用on_fail选项,但它没有发现错误。

1 个答案:

答案 0 :(得分:1)

如果返回false值,

Params::Validate将抛出泛型错误。要提供您自己的错误消息,只需让回调die

  

如果值有效,则回调应返回true值。如果没有,它可以返回false或die。如果返回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!";
                }
            }
        }
    }
);