Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Esa salida es CORRECTA porque los caracteres de finales de línea, al ser retornos de carro, coloca el cursor en la primera columna. Por eso solo vemos una sola línea.
Pero, ¿por qué pasa esto? No conozco ni tengo un MacOS por aquí, pero sospecho que el shell en donde estás trabajando con el Perl, en línea de comandos, si es un verdadero UNIX (o hijo de), entonces sus finales de línea será el avance de línea 0x0a.
Por eso hay ese comportamiento dispar: tu Excel genera los csv con finales de línea tipo Mac porque estás en un Mac. Pero en la línea de comandos, no estás en un Mac, si no en un UNIX, por lo que el final de línea es distinto.
Es lo que creo, claro...
Una forma de probarlo... Prueba esto:
Using text Syntax Highlighting
perl -le 'print join "\n", map { "[$_]" } <>' Libro2.csv | hexdump -C
Si sale lo que sospecho, entonces tu programa se arreglará con solo poner $/ = "\r"; antes de iniciar la lectura de las líneas.