in reply to copy, move, rename

Use File::Copy move. This will do a rename (if the file is on the same filesystem) or actually copy the file bit-for-bit to the target. If the operation fails mid-move you may have a partial copy of the file in the target location.

On most filesystems rename is the same as move as long as the source and target are on the same filesystems since the name just contains a pointer to the blocks on disk where the contents of the file are. So for intra-filesystem moves renaming /foo/bar/asd to /foo/rab/dsa is the same as copying it.

Short version: use File::Copy move.

-ben