in reply to skiping to the next dir using File::Find;

A quick observation on your code. Why compare $fileage against $modtime twice? The use of the two different file tests is confusing me as well.
If (($fileage <= $modtime) && (-d $_)) { # at this point we know $_ *must* be a directory if ($fileage <= $modtime) && (-f $_)) { # this -f test won't work because you are # testing $_ again and you've just # established that $_ is a directory