my @Dir = ReadDirectory ("dirName", "\.html"); for my $file (@Dir) { open (InFile, "<$file"); #..................... close (InFile); } sub ReadDirectory { my $DirName = shift; my $FilePattern = shift; opendir (DIR, $DirName) or die "can not opendir $DirName: $!\n"; my @DirListing = readdir(DIR); closedir (DIR) or die "can not closedir $DirName: $!\n"; if ($DirName eq '.') {$DirName = ''} else {$DirName .= '\\'} my @Dir = (); for my $file (@DirListing) { if ($file =~ /$FilePattern/) { push @Dir, "$DirName$file"; } } return @Dir; } # (sub ReadDirectiry)