|Think about Loose Coupling|
Sometimes it's neccessary to enhance the functionality of a core module in order for it to become more usable.
A couple of years ago I had reason to patch Apache::DBI for a project. There were a number of scripts running under modperl that were creating or altering database handles leaving us with a pool of rarely used or polluted handles.
a) First major thing was we HEAVILY documented what we were about to do.
b) Developed the new version under version control.
c) Created a patch file.
d) Patched the server using the patch.
e) Released the patch back to the community.
The patch was not initially accepted but it still has helped out other people and it may eventually find its way in. Discussion about Apache::DBI Patching
Suggestions on how this process could be improved would be welcome.
Update Patch was accepted into Apache::DBI. Just did not check before posting. ;)