in reply to Loading/Unloading Modules?
"Reloading" of modules is pretty much a 4 step process.
1. Run anything custom you need to do (like disconnecting from database handles or unloading plugins)
2. Delete all your symbol table $stuff
3. Delete your %INC entry
4. require My::Module
The tricky bit is 1. and 2.
You can't do 1. for _any_ arbitrary class, it needs intimate knowledge of the module itself... what if it's a Singleton that has handles to itself still outstanding?
When doing 2. you have to ensure that you both delete everything needed (including various child classes) and DON'T delete things you shouldn't (like separate modules that occupy lower namespaces that should stay intact).
Otherwise, it should be relatively easy. But very case-specific.