Perhaps a little more clarification on what im doing is in order. (Of course this problem exists everywhere). I write a lot of data migration programs at work, and this problem usually arises when i get some nasty data and have to do all sorts of experimentation just to figure out what to do with the data...as that process goes along i continually modify what is being reported about the process itself. Most of the things being reported are merely counters, but i always end up keeping track of details for various anomolies. During development i find it easiest to just have a hash(ref) that is the main report accumulator, and i throw in whatever needs to be reported. This continually changes. Once the main development / research is complete, i have a good idea of what will ultimately get reported and i can lock down the report accumulator as a class or a hashref if it ends up simplistic.
One way to help me detect these errors would be to do a Dumper on the report hashref, in addition to the lightly formatted reporting that is going on during development.
I am quite anal about good programming techniques, this is just one that sometimes gets the best of me. These reporters are what i would consider on the edge of being quick and dirty / needing more formal structure - this probably means that they should probably get the more formal treatment.
Thanks for all the advice, looking forward to a weekend of studying