Here's one more thing to add to the mix -- if you're moving the file within
the same device (that is, there is no need to move the file contents, only
update its directory entry), you can simply use the builtin function
rename:
rename OLDNAME,NEWNAME
Changes the name of a file; an existing file NEWNAME will be
clobbered. Returns true for success, false otherwise.
Behavior of this function varies wildly depending on your
system implementation. For example, it will usually not work
across file system boundaries, even though the system mv
command sometimes compensates for this. Other restrictions
include whether it works on directories, open files, or pre-
existing files. Check perlport and either the rename(2)
manpage or equivalent system documentation for details.
For a platform independent "move" function look at the
File::Copy module.