Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

imprimiendo valores en pantalla

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Mar Oct 03, 2006 3:42 pm
Juan Carlos Mendoza
Perlero Nuevo
Perlero Nuevo
Registrado: 03 Oct 2006
Mensajes: 2
imprimiendo valores en pantalla Responder citando

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
Mensaje Mar Oct 03, 2006 3:55 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4225
Ubicación: Valladolid, España
Responder citando

¡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".
Mensaje Mar Oct 03, 2006 4:50 pm
Juan Carlos Mendoza
Perlero Nuevo
Perlero Nuevo
Registrado: 03 Oct 2006
Mensajes: 2
Responder citando

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
Mensaje Mar Oct 03, 2006 4:58 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4225
Ubicación: Valladolid, España
Responder citando

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.
Mensaje Mie Oct 04, 2006 6:09 pm
creating021
Vive para Perl en Español
Vive para Perl en Español
Registrado: 23 Feb 2006
Mensajes: 498
Ubicación: Frente al monitor
Responder citando

http://perlmonks.org/?node_id=8991
Mensaje Mie Oct 04, 2006 7:35 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4225
Ubicación: Valladolid, España
Responder citando

Juan Carlos Mendoza escribió:
Perl:
qx(repquota -a | awk -F" " '{print $1 " " $3 " " $5}' > /tmp/archivo.txt)
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.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group