• Publicidad

Problema de orden al imprimir cadenas

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Problema de orden al imprimir cadenas

Notapor sacoo » 2006-05-03 04:48 @242

Buenas, hace ya tiempo que estoy luchando desde una Debian para hacer una pequeña practica en Perl. Uso la versión 5.8.8 sobre Debian.

El problema que tengo es que al llegar a esta instrucción:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my ($line) = $_;
  2. chomp($line);
  3.  
  4. for ( $i = 1; $i <= 3; $i++ ) {
  5.     print $line . sprintf( "%02d", $i ) . "\n";
  6. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Con un fichero que contiene:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
lluis
anton
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

En lugar de imprimir
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
lluis01
lluis02
lluis03
anton01
anton02
anton03
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Me imprime
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
01uis
02uis
03uis
anton01
anton02
anton03
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

¿De dónde puede venir el problema?
sacoo
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2006-05-03 04:33 @231

Publicidad

Notapor explorer » 2006-05-03 05:16 @261

Hay un carácter 13 (nueva línea) extra después de lluis, antes del final de línea.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Humm, interesante ...

Notapor sacoo » 2006-05-03 05:26 @268

De acuerdo, ahora ya solo me hará falta quitar el carácter ese y a ejecutar :)

Por cierto, ¿algún programa con el que pueda ver los caracteres ocultos?

He probado con el kate, kwrite, joe y alguno más, pero no hay forma...
sacoo
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2006-05-03 04:33 @231

Notapor explorer » 2006-05-03 09:19 @430

Yo con el Joe sí que le veo.

Cuando tengo que buscar algo que está muy escondido, a veces uso el hexedit o khexedit. Pero claro, es a nivel de código hexadecimal...

Otra posibilidad es usar Perl para quitar lo sobrante...

perl -pi -e 's/\015//' fichero.txt

Lo que también puedes hacer es quitar ese carácter a medida de que vas leyendo el archivo, línea a línea, con la función chomp() o chop().
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Solucionado

Notapor sacoo » 2006-05-04 03:51 @202

Ya lo he solucionado, gracias por vuestra ayuda, al final lo que he hecho ha sido transformar el fichero con el comando dos2unix (también existe el unix2dos) y me funciona correctamente.
sacoo
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2006-05-03 04:33 @231


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 1 invitado

cron