Params::Check is a generic input parsing/checking mechanism. It allows you to validate input via a template. The only requirement is that the arguments must be named. WWW: https://metacpan.org/release/Params-Check