in reply to Better way to search?

Use a regex. :)
$ext_re = '\.(?:' . join('|', @exts) . ')$'; find(\&wanted, $root); sub wanted { if (/$ext_re/o) { print "$File::Find::dir/$hold\n"; } }
The $ anchor is important if your filenames can contain multiple periods.