I haven't done deep copying either, but I've read about it.
Merlyn has a good column at
Deep Copy and Recursion, which has a simple deep copy routine that should work for most situations, and suggests using Storable::dclone for particularly hairy deep copying.