copy the files instead of moving them. after copying compare file sizes to originals. if they match then delete local copies. if they don't match, re-try. be careful along the way if the destination is a different file system (e.g. it can become unavailable due to network failure, media failure etc.)...also file system full condition. Should just gracefully abort if the checking process fails...not much you can do if network goes down half-way through copying (just run it again later) EXCEPT if you know the destination system type you could waste lots of time and write your own self contained file installation script + files and copy this first to dest system before executing it (rsh?). mind you there are (non-perl) tools to do mirroring with commit/rollback already built in $$$