Borrar espacios en blanco dentro de un array
Tengo desarrollado el siguiente código para extraer de un fichero que contiene 6 columnas la tercera para procesar su información:
open(fd,"dl_info.txt") || die "Error: No se puede abrir el fichero $_";
$i=0;
while (<fd>) {
chop; # quitar retornos de carro
@psefField = split(' ',$_,6); # dividimos cada fila en columnas por espacio blanco
unless ($psefField[0]=~ /#/) { # desechamos aquellas filas que comienzan por comentario
$pid[$i] = $psefField[2]; # recogemos el valor del datalist
$pid[$i] =~ s|' '| |g; # quitamos aquellos espacios blancos del registro
$pid[$i] = "$pid[$i]\n"; # añadimos retorno al final de cada registro
$i++;
}
}
close(fd);
# algoritmo de ordenacion y eliminacion de elementos duplicados
undef %saw;
@sorted = grep(!$saw{$_}++, @pid);
print "@sorted\n";
exit 0;
Sin embargo misteriosamente al procesar la información veo que cada intentar del vector contiene las letras separadas por espacios en blanco, ¿cómo puedo quitarlos o hacer que al leer el fichero no se escriban esos espacios?
open(fd,"dl_info.txt") || die "Error: No se puede abrir el fichero $_";
$i=0;
while (<fd>) {
chop; # quitar retornos de carro
@psefField = split(' ',$_,6); # dividimos cada fila en columnas por espacio blanco
unless ($psefField[0]=~ /#/) { # desechamos aquellas filas que comienzan por comentario
$pid[$i] = $psefField[2]; # recogemos el valor del datalist
$pid[$i] =~ s|' '| |g; # quitamos aquellos espacios blancos del registro
$pid[$i] = "$pid[$i]\n"; # añadimos retorno al final de cada registro
$i++;
}
}
close(fd);
# algoritmo de ordenacion y eliminacion de elementos duplicados
undef %saw;
@sorted = grep(!$saw{$_}++, @pid);
print "@sorted\n";
exit 0;
Sin embargo misteriosamente al procesar la información veo que cada intentar del vector contiene las letras separadas por espacios en blanco, ¿cómo puedo quitarlos o hacer que al leer el fichero no se escriban esos espacios?
1 respuesta
Respuesta de hmk_usuario
1