my $start_dir; my $file_name = "mjnload.cmm"; opendir(DIR, "$start_dir"); @plf_files = grep(/\.plf$/,readdir(DIR)); print "PLF FILES\n"; print "@plf_files\n";--->there are no duplicates closedir(DIR); foreach my $plf (@plf_files) { chomp($plf); open my $match, '<',"$start_dir\\$plf" or die "could not open '$plf' $!"; my @file_lines = <$match>; $Hash_filenames{$plf}=\@file_lines; } open my $hash, '>>', "hash.txt"; print $hash Dumper( \%Hash_filenames );