我正在尝试编写一个函数,用于验证用户名是否为字母数字,并在失败的情况下记录我的自定义错误消息并返回0给被调用的函数,而不是直接终止程序:
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。请问有人能帮我解决这个问题吗?并且有人可以解释一下为什么会这样吗?