我在我的函数中使用Params::Validate
模块。对于其中一个选项,我正在使用回调进行验证。现在我需要抓住这个失败并用一些自定义消息替换它。怎么能实现这一目标?我尝试使用on_fail选项,但它没有发现错误。
答案 0 :(得分:1)
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!"; } } } } );