• Publicidad

Salto de línea

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

Salto de línea

Notapor seafree » 2015-04-13 11:36 @525

Hola. Es una simpleza, pero Perl no está mostrando el salto de línea:

"$campo $valor\n";

¿Qué estoy haciendo mal o qué me está faltando?
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Publicidad

Re: Salto de línea

Notapor explorer » 2015-04-13 14:02 @627

Cambia la línea por

"[$campo $valor\n]";

y nos dices qué sale.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Salto de línea

Notapor seafree » 2015-04-13 14:26 @643

El resultado es:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
[equipo 43010-43030 ][gerencia grtor ][referenciar N ]
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


De hecho el código es:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. while (my ($campo,$valor)=each %parametros){print "[$campo $valor\n]"}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¿Por qué sucede así?
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Salto de línea

Notapor explorer » 2015-04-13 18:36 @817

Esto es muy raro. Se me ocurren diversas opciones.

* se ha creado un filtro de salida para el STDOUT que impide sacar el valor de un "\n" (algo muy raro y diabólico)

* se ha cambiado la definición de lo que el sistema operativo entiende como "final de línea" (esto no es solo diabólico, sino criminal :) )

* se ha abierto STDOUT con una capa tipo ':raw' o ':bytes' o algo así (muy raro, pero posible)

* se ha modificado el valor de $\ (que no debería influir en el resultado, de todas maneras)

* se está ejecutando el programa en un ordenador Mac (los finales de línea "\n" solo emiten un carácter 0x0a. Muy raro, también, ya que no influye)

* la terminal de salida no es capaz de interpretar lo que le enviamos (frecuente en sesiones XTerm después de haber emitido basura, y alguna vez en sesiones DOS que cargan el controlador ANSI.SYS)


Es necesario ajustar más para saber lo que pasa.

¿En qué sistema operativo estás?

¿Qué versión de Perl estás usando?

¿Qué terminal estás usando?

Si ejecutas el programa en una terminal nueva, ¿sigue fallando?

¿Puedes reducir el código al menor número de líneas que sean capaces de reproducir el error, y mostrar ese código?

Algunas veces, para saber qué está saliendo por la consola, redirijo la salida hacia un codificador hexadecimal:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
> perl -E 'print "Hola\n"' | hexdump -C
00000000  48 6f 6c 61 0a                                    |Hola.|
00000005
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Y así sé exactamente los bytes que se generan.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados