I recommend that for this kind of problem you start with
some general programming books (eg "Code Complete" and "The Pragmatic Programmer") and go from there. Overall, "How do I structure what I am doing" questions are very important but far too seldom considered.
I mean to post some day on a few of these issues. Thinking in terms of transactions. Modularization and loose coupling. etc. However so far the majority of that discussion around here stops at, "Avoid Cargo Cult programming and don't bother reinventing wheels."
But the next time you are starting to write something, why not spec out the general flow, and post that asking for general comments? The question may have no Perl per se in it, but the answers should be helpful and relevant to Perl programmers...