in reply to Checking for data entry
I would highly recommend Params::Validate to check for parameters -- positional parameters are fine until you have more than three or so, then it's lovely to be able to use a hash ref.