Esto es debido a que el ls devuelve una serie de líneas, una por cada archivo *.xls. El awk se queda con el último valor, que es el nombre del archivo, pero además, incluye el carácter de nueva línea que hay al final de las líneas que genera ls.
La solución es quitar ese o esos caracteres.
Agrega chomp() justo después de la operación del ls:
Using perl Syntax Highlighting
- chomp $xls;
- print "$xls\n";
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Mucho mejor si haces toda la operación con Perl:
Using perl Syntax Highlighting
- my @xls = <*.xls>; # listado de todos los xls
- @xls = sort { -M $a <=> -M $b } @xls; # los ordenamos según su antigüedad (el más moderno, primero)
- my $xls = $xls[-1]; # nos quedamos con el último (el xls más viejo)
- my %con_tdm = configuracion->conexion_tandemD(); # hash de conexión
- my $ref = ReadData($xls, cell => 0, atrr => 1) # lectura del xls
- or die "ERROR: xls no encontrado\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Con esta solución no necesitas hacer chomp(), ya que el operador diamante nos devuelve solo nombres de los archivos, sin nada más.