• Publicidad

Usar split o no

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

Usar split o no

Notapor hadelmestre » 2009-02-16 13:26 @601

Foro:

Estoy incursionando en el mundo Perl.

Concretamente: logré cargar a un arreglo (array) una linea de un archivo de texto. Dicha línea tiene el formato XXXX XXXX XXXX XXXX (nótese el espacio entre cada dato, hubiese sido más fácil un ;, pero bueno, todo no se puede).

¿Cómo logro descomponer cada línea, para guardar luego cada dato en variables, teniendo como patrón el espacio entre cada dato?

¿Tendré que usar la función split()? (aún no la entiendo mucho). Si no estoy errado, la asignación de la línea es así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open(ARCHIVO, "archivo.txt");
@linea = <ARCHIVO>;
#hasta acá llegué
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Gracias de antemano.

hector
hadelmestre
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2009-02-09 15:49 @700

Publicidad

Notapor explorer » 2009-02-16 13:51 @618

Bienvenido a los foros de Perl en Español, hadelmestre.

Si, en efecto. Con split() puedes dividir una línea cortando por el separador que indiques. El separador ha de ser una expresión regular, pero en este caso, al ser espacios en blanco, se simplifica un poco más:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open(ARCHIVO, "<archivo.txt");
while ($linea = <ARCHIVO>) {
    ($var1,$var2,$var3,$var4) = split(" ",$linea);
    # ... hacer algo con las variables ...
}
close(ARCHIVO);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
que, luego, incluso puedes simplificar en:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open ARCHIVO, "<archivo.txt";
while (<ARCHIVO>) {
    @vars = split;
    # ... hacer algo con los elementos del arreglo @vars ...
}
close ARCHIVO;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Resulta que éste es un caso especial, por lo que podemos simplificar split() (si no indicamos nada, estamos queriendo decir que use los espacios como separadores). Y si no decimos de dónde debe cortar, lo hará desde la variable $_, que es ademças la variable donde estamos guardando las líneas que vamos leyendo del ARCHIVO.

Más información en split().
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

Notapor hadelmestre » 2009-02-16 14:24 @642

Ok. Pruebo y aviso
hadelmestre
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2009-02-09 15:49 @700


Volver a Básico

¿Quién está conectado?

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

cron