После многократной настройки, вот конфигурация, которая работает с генерацией файлов в Linux, чтение в Windows + Excel
В Perl я использовал Text :: CSV, чтобы сделать это следующим образом:
use Text::CSV;
open my $FO, ">:encoding(utf8)", $filename or die "Cannot create $filename: $!";
my $csv = Text::CSV->new({ binary => 1, eol => "\r\n" });
#for each row...:
$csv -> print ($FO, \@row);