• Publicidad

Barra vertical

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

Barra vertical

Notapor jomarq » 2015-06-19 15:57 @706

Buenas tardes amigos perlianos:

Tengo un inconveniente. Al desarrollar un pequeño software, el cual lee desde una carpeta archivos .txt, en los cuales hay una sola línea:

$data = '511196|2015/06/14 01:51:36|1.5|7|5.8|40|0|CAMPO2';

éste me debe guardar en una base de datos. El contenido de los .txt está separado por '|' (barra vertical, ASCII 124), pero por alguna razón al aplicar:

@trama = split("|", $data);

No reconoce la bendita barra, es decir, no lo separa, lo toma todo como si fuera uno, es decir todo el registro lo guarda en $trama[0]. Pero al imprimir en pantalla (cmd) sale esta barra │ (ASCII 179). ¡Help me!
jomarq
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2015-01-13 12:31 @563

Publicidad

Re: Barra vertical

Notapor explorer » 2015-06-19 16:19 @721

El primer argumento de split() es una expresión regular, no una cadena de caracteres fija. Entonces, como '|' es un metacarácter para un patrón de expresiones regulares, debes escaparlo.

Prueba con
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
@trama = split(/\|/, $data);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Escapamos la barra vertical con la barra diagonal inversa. Para acordarnos que es una expresión regular, es mejor usar el delimitador '/', y reservamos las comillas dobles para el caso mágico del espacio en blanco.
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: Barra vertical

Notapor jomarq » 2015-06-19 16:23 @724

¡Gracias, explorer! ¡Perfecto! Tema cerrado. Debería de haber en el índice una nueva categoría: ¡Muy Básico o For dummies! :D Saludos.
jomarq
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2015-01-13 12:31 @563


Volver a Básico

¿Quién está conectado?

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