in reply to File::Find problem
assuming Windows or Mac file systems (case insensitive) all you need to do is make your regex ignore case:
$sourcefile = $_ if -f and /$datfile/i ; [download]
Note the 'i', ignore case flag, following the regex.