use Modern::Perl qw/2014/; use File::Find::Iterator; my $find = File::Find::Iterator->create( dir => ['d:/Perl/scripts'], filter => \&find ); open my $FH_OUT, '>', './results.CSV' or die "Could not open results file - $!"; while ( my $file = $find->next ) { open my $FH_IN, '<', $file or die "Could not open $file - $!"; say $FH_OUT join ', ', ( split /,/ )[ 0, 2 ] while (<$FH_IN>); } sub find { /GENES\d+\.csv/; }