英数字のユーザー名を検証する関数を作成しようとしています。失敗した場合は、カスタムエラーメッセージをログに記録し、死ぬ代わりに呼び出された関数に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が返されるなどの問題に直面しています。誰かがこの点で私を助けてくれますか、そして誰かがなぜそうしているのか私に説明できますか?