Since it looks like you will be modifying your module and all your calling programs, consider passing your values as a hash reference. This is a common practice. It has the benefits of scalability and order-independence. It would be more verbose, but that's a good thing because it would be passing parameters by name, and therefore more readable. See:
Pass by Reference.
Here is one CPAN module which shows this technique; you could look at its source code.
Also, there are parameter checking modules, such as Params::Validate and Params::Check (Core).