• Publicidad

Lectura de líneas

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

Lectura de líneas

Notapor later » 2007-11-15 16:16 @719

Lo que intento hacer es abrir un archivo de texto en modo lectura, donde hay almacenadas URL y capturar cuantas lineas los componen. El fichero tiene esta estructura:

Código: Seleccionar todo
URL1
URL2
...


Para después imprimirlas una a una dentro de un bucle.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$archivo=$ARGV[0];

open (txt,"$archivo");
@webs=<txt>;

for ($i=@webs;$i<@webs;$i++)
{
print @webs[$i];
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
later
Perlero nuevo
Perlero nuevo
 
Mensajes: 46
Registrado: 2007-10-06 12:42 @570

Publicidad

Notapor creating021 » 2007-11-15 16:33 @731

Lo has hecho no es buena idea si el archivo es muy grande, yo usaría algo como esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use strict;

my $archivo = shift @ARGV;

open FL, $archivo or die "Error: $!\n";
while ( my $linea = <FL> ) {
    chomp $linea;
    print $linea, "\n";
}

close FL;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor explorer » 2007-11-15 19:05 @836

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# así...
for ( $i = 0; $i < @webs; $i++ ) {
    print $webs[$i], "\n";
}

# o así...
foreach $url ( @webs ) {
    print $url, "\n";
}

# o...
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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 later » 2007-11-16 15:18 @679

Gracias Kidd y Explorer.

Bueno, sí tuve un pequeño fallo al hacer el for. Inicializé la $i como @webs y tenía que hacerlo como 0.

Mal:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
for ($i=@webs;$i<@webs;$i++)
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Bien:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
for ( $i = 0; $i < @webs; $i++ )
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
later
Perlero nuevo
Perlero nuevo
 
Mensajes: 46
Registrado: 2007-10-06 12:42 @570


Volver a Básico

¿Quién está conectado?

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