in reply to File::Copy and moving directories across volumes

According to the docs, it's... not really covered.

If the destination already exists and is a directory, and the sour +ce is not a directory, then the source file will be renamed into the directory specified by the destination.

There's a bunch of comments in the module code itself that deals with a broken NFS mount - which at least implies that it should work for moving between mounted dirs. According to my own tests, it does not:

ben@Tyr:/tmp$ mount|grep home /home on /chroot/home type none (rw,bind) ben@Tyr:/tmp$ mkdir test; perl -MFile::Copy -we'move("test", "/chroot/ +home/test") or die "test: $!\n"' mkdir: cannot create directory `test': File exists test: Is a directory

It also fails - in a rather ugly manner - when you try to move an existing directory into another existing directory:

ben@Tyr:/tmp$ mkdir test test1; perl -MFile::Copy -we'move("test", "te +st1") or die "$!\n"'; ls -lR test test1 ls: cannot access test: No such file or directory test1: total 0

In other words, "test" just got wiped out. Not moved, or copied, or even died with an error message - just wiped out. I'd suggest filing a bug report.


--
Language shapes the way we think, and determines what we can think about."
-- B. L. Whorf