You don't miss prototypes. You only think you do. You might want to consider changing how you look at subroutine parameters and switch everything to be a hashref. This allows you to do a number of things:
Future-proof your code by easily adding new parameters without modifying every caller
Allow for optional parameters
Make your parameters positionless
Allow you to be able to have different classes handle a given invocation easily.
Allow you to validate it more easily.
My criteria for good software:
Does it work?
Can someone else come in, make a change, and be reasonably certain no bugs were introduced?