Params::Validate is probably what you're looking for. Prototypes are NOT what you're looking for, Animator's reply aside. Prototypes are a failed experiment that should not be used (unless, of course, you know why they shouldn't be used).
In general, if you think something isn't in Perl, try it out, because it usually is. :-)
"What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?"