in reply to using file::find::name and file tests

$File::Find::name is already the complete pathname of the file .. see "The wanted function" section in the File::Find docs.

Your first code works for me -- i.e. it outputs nothing, which is what should happen as written. By definition, that print statement should never be reached..

As a side note, File::Find::Rule may be of interest

Update: See my other reply above and its followup.