use strict; use warnings; use File::Find; my @files; my $dir = 'C:\\Temp\\'; find( \&csvfile, $dir ); foreach my $list (@files) { print "$list\n"; sub csvfile { push @files, $File::Find::name if -f && /\.csv/; } }