http://www.perlmonks.org?node_id=64338


in reply to File::Find Question

What you want to start with is perlman:-X, which describes a series of functions for testing file/directory types. These can be used with $_ which will be set to the current filename, and the directory will be chdired to the appropriate place to use it. $File::Find::name (the full path) and $_ can then be used with common string operations to find if the file/directory name suits your conditions.

Here is a possible starting point I put together:

find( sub { if (-d $_) { if (/^questionable/) { dir_func_1($File::Find::name); } elsif (/-(\d{6}-\d{6})$/) { dir_func_2($_,$1); } # Uncomment following line to prevent furthur recursion. # $File::Find::prune = 1; } else { # you may want furthur tests before assuming good file file_func($_); } }, $intdir);

Updated: Changed chmod to chdir, stupid me