Build an optimized subroutine parameter validator once, use it forever
Description
This module creates a customized, highly efficient parameter checking subroutine.
It can handle named or positional parameters, and can return the parameters as key/value pairs or a list of values.
In addition to type checks, it also supports parameter defaults, optional parameters, and extra "slurpy" parameters.