Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

comment on

( [id://3333] : superdoc . print w/replies, xml ) Need Help??
"Before I rush ahead with this, would you guys have any suggestions for me to consider?"

Yep!

Note I don't have the time to go through the code at the moment (it's too nice out today to not be out in one of the boats!), but here's how I'd approach the overall project:

  • create a new distribution using the module-starter script installed by the Module::Starter distribution
  • inside of the newly-created distribution directory, create a "legacy" directory, and add your existing script to it
  • put all code in a Version Control System (Git, for example)
  • write unit tests to cover *all* of the existing legacy script functionality before doing anything else
  • write the same unit tests for the new script/module configuration, until you get at minimum the exact same functionality covered between legacy and the new setup (see Devel::Cover)
  • write proper documentation *as you write code*. Same goes for tests. You should write tests before, during and after each piece of functionality as its fresh on your mind
  • ask your systems teams for a development/test/qa system for every single platform type you'll be running your code on
  • ensure all tests (legacy and new) pass on all of these various platforms (use perlbrew or berrybrew to easily install an instance of each version of Perl you have in use across your infrastructure, so you know all tests pass on all of them)
  • impress boss and various teams when you confidently move to production, because all of the hard work was done in advance, and now your systems/infra teams don't need to scramble because of your unforseen circumstances :)