http://qs321.pair.com?node_id=32963

Q&A > object-oriented programming > How do I make deterministic constructors? - Answer contributed by Perlmage

The short answer is: you can't. Perl doesn't do multiple multiple dispatch.

The long answer is: Use the Class::Multimethods module. As is the case with many of the things that "Perl doesn't do", Damian Conway has made Perl do it.