use File::Find; use HTML::Parser; # this code doesn't make use of the module, but I really think you should use it in your code =) my @data; find(\&html_files, "/base/path"); # now process @data, which is a list of filenames sub html_files { push @data, $File::Find::name if /\.s?html?$/; }