the File::Find docs (and a quick warn tossed into OP's first code) say that $File::Find::name is the 'Complete pathname to the file', and not relative and all the examples given in the The wanted function section indicate the same thing..
to OP-- you can add some debugging to print out cwd, $_, and $File::Find::name to examine exactly what's going on..