Página 1 de 1

imprimiendo valores en pantalla

NotaPublicado: 2006-10-03 16:42 @737
por Juan Carlos Mendoza
Saludos a todos...

Estoy leyendo datos de un archivo de texto y todo va bien, saco la información perfectamente, hago un split para separar los datos por línea, pero el problema viene cuando voy a imprimir algunos valores el cual me arroja la siguiente salida

valor1
^Mvalor2
^Mvalor3
^Mvalor4
.
.
.

la primera vez lo hace bien pero de la segunda en adelante me adiciona el ^M he buscado info y no he podido resolver el problema a alguien le ha pasado alguna vez esto?

NOTA: Estoy trabajando bajo Linux

gracias de antemano

NotaPublicado: 2006-10-03 16:55 @746
por explorer
¡Bienvenido a los foros de Perl en Español!

El problema es que estás leyendo un fichero hecho en Windows. El '^M' es el símbolo del retorno de carro.

Seguramente estás haciendo un chop para quitar el final de línea. Prueba a poner un chomp.

Si eso no te funciona, prueba a definir al principio del programa $/ = "\r\n".

NotaPublicado: 2006-10-03 17:50 @785
por Juan Carlos Mendoza
gracias, intenté lo q me señalaste y nada, con el chomp hace exactamente lo mismo y cuando defino $/="\r\n" no me muestra ningúnn valor y es extraño, porque el archivo lo estoy generanto con el mismo script en perl usando esta linea

qx(repquota -a | awk -F" " '{print $1 " " $3 " " $5}' > /tmp/archivo.txt)

y de alli es q estoy sacando el nombre del usuario, espacio usado, y quota asignada

el escript es para q me de reportes semanales de las quotas de disco

NotaPublicado: 2006-10-03 17:58 @790
por explorer
Humm... a mi me haría falta ver algo más de código...

Si el problema no está a la entrada, quizás el problema esté a la salida.

NotaPublicado: 2006-10-04 19:09 @840
por creating021

NotaPublicado: 2006-10-04 20:35 @899
por explorer
Juan Carlos Mendoza escribiste:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
qx(repquota -a | awk -F" " '{print $1 " " $3 " " $5}' > /tmp/archivo.txt)
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Curioso... usas awk cuando podrías hacerlo todo en Perl...

Con el módulo Quota se puede interrogar al sistema sobre las cuotas en los sistemas de ficheros.

Pero, dejando aparte eso, se podría simplemente leer la respuesta de 'qx(repquota -a)' y con un 'split-join' guardarlo al fichero.

Aún así no veo el error. Deberías abrir el fichero archivo.txt y ver si los finales de línea están bien. Si lo están, entonces el fallo puede estar en el segundo programa.