in reply to File::find and skipping directories

Add the line:
$File::Find::prune = 1;
in your first if block right before the return. This tells File::Find not to recurse into that dir. Check the perldoc for more info.

You might also want to check if it is indeed a dir in that same if block, instead of just checking the UID.