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

Ea has asked for the wisdom of the Perl Monks concerning the following question:

I am looking in the future to what my next program is likely to become and I can forsee that different people are going to want different database connections and/or platforms. What can I do to make my life easier when someone comes back to me saying "oh, could you make it do this instead"? I don't want to go messing in the guts of a program and create incompatabilities while trying to add new functionality.

It's original form would just be one long program in Perl/TK (Java is the other option) providing an interface to a database for a barcode scanner under Win98, but I have my choice of Oracle or Access (and MySQL is always lurking in wings) and, who knows, the platform may move to WinXP or Linux. I want users to install it as painlessly as possible along with the required Perl and TK libraries. Am I looking at simply parsing command line options with GetOpt or should I go full blown control with MakeMaker? (I'm not sure what I should be running make on, tho)

What I'm looking for are ideas on good project management, so that I don't end up down some dark alley late at night. Many thanks: