This seems like a job for the dirmove command in the File::Copy::Recursive module.
# (untested)
use strict;
use warnings;
use File::Copy::Recursive qw(dirmove);
my $dir= "c:/startdir";
my $dir2="c:/mlx";
if (dirmove($dir1,$dir2)) {
print "MOVED DIRECTORY [$dir1] TO [$dir2]\n";
} else {
print "[Error] UNABLE TO MOVE DIRECTORY [$dir1] TO [$dir2] - [$!]\n"
+;
}
BTW: I would always use forward slashes in filepaths on Windows. It works the same and you never have to worry about the escaping issues of backslashes. Not to mention that your code is more portable too :-)