use strict; use warnings; use Data::Dumper; my $some_dir = "."; opendir(DIR, $some_dir) || die "can't opendir $some_dir: $!"; my @files = grep { /txt/ } readdir(DIR); closedir DIR; foreach my $f (@files) { open IN, "<$f"; my @cmpids = (); while() { push @cmpids, $_; } close IN; open OUT, ">>COID_LIST.TXT"; print OUT Dumper(\@cmpids); close OUT; }