Thanks. Hoping that copying is more robust than renaming, I tried this:
in reply to Re^5: Rename unreliable on Windows
in thread Rename unreliable on Windows
unlink "rename2.txt" or die "Can't delete file: $!";
copy ("rename1.txt", "rename2.txt") or die "Can't copy file: $!";
unlink "rename1.txt" or die "Can't delete file: $!";
Errors became less frequent, but they're still there. I'll try your suggestion. I really like the idea of sleeping increasing intervals between attempts, too.
Edit: did the test, and the solution works. I also added some reporting to see how many extra attempts are needed for the renamings to succeed. The second attempt was sufficient every time, and it was needed ~50 times before the script got to 10000 loops. I'll implement this with 5 attempts max (just in case the backup sw spends more time on larger files) and forget about the issue. Thanks.