use File::Find; sub toDo { return if (-d $_); # I'm not interested in directories if (/\.txt$/i) { print "I found text file $_ in $File::Find::dir\n" } } find( \&toDo, '.');