ActiveState Perl provides a batch script "reloc_perl.bat" that in its turn uses the "ActiveState::RelocateTree" module to change all necessary paths when your Perl moves to a new location. It is much more complicated than just adjusting a few config-files (it even looks inside binary files!) so unless ActiveState Perl is totally different from Strawberry Perl I guess that there is more to it than just the config-locations to be changed.
Perhaps you can look at the AS files and be inspired by them?
CountZero
A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James