foreach my $file (readdir D) { my ($filebase, $dirname, $ext) = fileparse($file, '\..*'); my $csvFile = "$opts{d}\\$filebase.csv"; open FILE_OUT, ">$csvFile" or die ...; #### for my $file ( grep /\.txt$/, readdir D ) #### for my $file (<$opts{d}/*.txt>) # use a file glob