Ese módulo dice que es para los casos en que los CSV tengan una primera fila de cabecera. ¿Es tu caso?
Hay muchos módulos para leer CSV, desde luego. Según cada uno de ellos, te dejarán la información en una determinada etructira de datos. Luego, es cuestión de saber leerla para irla pasando al módulo que crea el Excel.
Vamos, un programa de transformación de datos de toda la vida.
Incluso podríamos sospechar que... debería ya estar creado...
Si entramos en Google y buscamos por las palabras 'perl', 'CSV', y 'XLSX', nos llevaremos la sorpresa de que la mayor parte de los mensajes hablan de justo lo contrario (pasar de xlsx a csv), ya que, como es normal hoy en día, hay pocas personas que quieran seguir trabajando con los formatos propietarios de Micro$oft, y busquen soluciones más estándares, como CSV u Opendocument
Incluso en el
Spreadsheet::XLSX::Utility2007, viene la función xls2csv, pero no al revés
Pero bueno, hacerlo uno mismo es sencillo. Tienes un ejemplo mínimo en
Excel::Writer::XLSX::Examples. Busca en la hoja por 'csv', y te saltará al ejemplo sales.pl, donde verás que, simplemente, hace un bucle por las líneas del csv (incluido al final del propio programa, en la sección DATA), separando los campos por las comas, y guardando la información en un
array de
arrays, para luego llevarlo a la hoja.
No me gusta la notación que usa... En vez de
@$sale[0] es mejor usar
$sale->[0] .