Really, this is a major part of Object Oriented programming,
I don't have any links off-hand, but OO is great for this.
You come up with an interface and write different modules
with different back end code, but with the exact same
methods, and then you can seamlessly interchange them...
Damian Conway has an OO Perl book that is supposed to be good
look at
perltoot to start
- Ant