my (%f_count,%n_count); for my $file (@files) { open( my $fh, '<', $file ) or die "Couldn't read '$file': $!"; while (my $line = <$fh>) { chomp $line; next unless $line; my ($name,$number) = split(',',$line); $n_count{$name}++; $f_count{$name}{$file}++; } } #### my $num_of_files = scalar @files; my $min = 25; my @candidates = grep { $n_count{$_} >= $min } keys %n_count; for my $name (@candidates) { my $in_files = scalar keys %{ $f_count{$name} }; next unless $in_files == $num_of_files; print "$name\n"; }