in reply to bin mode file copy

I think I see the problem now. The sub force_move() is only going to get file names, not full path names. I.e. $_ is just going to be a file name, not a full path name in force_move(). So the copy will fail without regard to binmode or not. As you descend through the directory structure, you will have to keep track of the current file path.

Another point: a directory is a special type of binary file and cannot be copied with a simple copy.

if (! (-d $filepath) && (-B $filepath) { true if not a directory and otherwise a binary file}
Also in Windows, it is not necessary to use \\, use / for the separators in file path. Perl will convert this the right way for Windows and it is easier to read.

So I would suggest getting this force_move thing working with full file paths: copy full_dest_path, full_src_path.