in reply to Hard to find bug in my File::Find code

if ( (-d) && ( $_ ne '.' ) ) {

I don't use $_ extensively so probably I have overlooked the side effect that put some value in it before this line. Otherwise it might be your bug

UPDATE: Should have checked File::Find before posting, it seems to use some strange methods to get values into the sub