note Anonymous Monk <i>One more observation meanwhile, if I change the second find call from find(\&findb, "/pqr") to find(&findb, "/pqr"), it does enter findb sub now but the file pointed by $File::Find::name is still from the /abc/xyz folder, i.e file1.</i> <p>That is to be expected. It actually calls <c>findb()</c> before calling <c>File::Find::find()</c> -- that's what the syntax means. It's not a subroutine reference but a call. <p>Anyway, there is no problem with your code as you've posted; I'd look into other possible problem areas such as file system permissions and the logic in the rest of your script 1038991 1039057 1