|Keep It Simple, Stupid|
You just described a considerable aspect of my development process. Although I do a lot of programming, I am not a programmer by trade (or disposition). I program to solve problems. Sometimes, it feels that I program more than I problem solve but that is another gripe. Anyway, my proof of concept scripts usually evolve into more detailied programs in much the way you have described. I often leave the script at the proto-module stage simply because, with the problem solved, it is time to move on.
Unfortunately, one axiom of good problem solving is to ask yourself if you have ever solved a similar problem before... <sigh> its back to my proto-module script. Often I find that, rather than duplicating the code, it is better to cast it as a library or module of some kind (code reuse and all that).
The purist in me has always felt dissatisfied with leaving things not completely finished but I console myself with the fact that I am more satisfied by a well solved problem than I am with perfect code.
Thanks again for the slice of life :o)
use strict; use warnings; use diagnostics;