use File::Find; # there are directory d:\perl\source\test\öa  and file d:\perl\source\test\öa\ü.txt under \test\ $srcdir="d:\\perl\\source\\test";   $dstdir="d:\\test2"; finddepth(\&check_and_copy, $srcdir); # sub check_and_copy  check the time of file/dir and only copy the updated file/dir to $dstdir