• Publicidad

Problema al abrir webs usando while

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

Problema al abrir webs usando while

Notapor JiM89 » 2009-01-07 10:55 @496

Hola.. soy nuevo por este foro y empecé hace muy poco en este lenguaje, estoy haciendo un script y yo quiero que el script cargue un txt (hay páginas webs dentro) y después quiero que detrás de esas webs incluya otra web; por ejemplo el pepe.txt tiene dentro lo siguiente:
Código: Seleccionar todo
http://www.google.es/
http://www.ejemplo.com/
http://asdasd.perl.com/


Yo quiero que el script me abra esas webs pero de la forma siguiente:

Código: Seleccionar todo
http://www.google.es/http://www.otrogoogle.es?
http://www.ejemplo.com/http://www.otrogoogle.es?
http://asdasd.perl.com/http://www.otrogoogle.es?


Creo que ya he logrado hacer la mayor parte, pero el problema está que el contador solo avanza cuando no le pongo el símbolo de interrogación a la web... "?"

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use LWP::Simple;
use LWP::UserAgent;

print "Introduzca la dirección de la segunda web \n";
print "Ejemplo: http://www.otraweb.com \n";
$web = <STDIN>;
chomp($web);
print "Ahora introduzca el nombre del archivo \n";
print "Ejemplo: webs.txt \n";
$listaweb = <STDIN>;
chomp($listaweb);
open EXP, "$listaweb" or die 'Imposible abrir las webs!';
@total = <EXP>;
close EXP;
$rep = 0;
$repo = 0;
while ($rep < @total)
{
$conect = @total[$repo];
chomp($conect);
$cheke = ($conect.$web);
$doc = get $cheke;
print "[-] Abriendo y Añadiendo # $rep : $cheke \n";
$rep++;
$repo++;
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Y aquí lo que me responde el script (uso ActivePerl):
Código: Seleccionar todo
D:\Programacion>perl webs.pl
Introduzca la dirección de la segunda web
Ejemplo: http://www.otraweb.com
http://www.red-isla.com/index.php?
Ahora introduzca el nombre del archivo
Ejemplo: webs.txt
paginas.txt


Y ahí se queda colgado.. ahora mira lo que pasa cuando no le pongo "?":
Código: Seleccionar todo
D:\Programacion>perl webs.pl
Introduzca la dirección de la segunda web
Ejemplo: http://www.otraweb.com
http://www.red-isla.com/index.php
Ahora introduzca el nombre del archivo
Ejemplo: webs.txt
paginas.txt
[-] Abriendo y Añadiendo # 0 : htt://www.spainchat.net/index.phphttp://www.red-isla.com/index.php
xt
[-] Abriendo y Añadiendo # 1 : htt://www.cubachat.org/index.htmlhttp://www.red-isla.com/index.php
xt
[-] Abriendo y Añadiendo # 2 : htt://cuba.red-isla.com/index.phphttp://www.red-isla.com/index.php
xt


No entiendo por qué se cuelga cuando le pongo el "?"

Gracias por adelantado :)
JiM89
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2009-01-07 10:31 @480

Publicidad

Notapor explorer » 2009-01-07 11:18 @512

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

La siguiente variación hace lo mismo que tu programa, y sí que me funciona:

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

print "Introduzca la dirección de la segunda web \n";
print "Ejemplo: http://www.otraweb.com \n";
$web = <>;
chomp($web);

print "Ahora introduzca el nombre del archivo \n";
print "Ejemplo: webs.txt \n";
$listaweb = <>;
chomp($listaweb);

open EXP, "$listaweb" or die 'Imposible abrir las webs!';
@total = <EXP>;
close EXP;

for $conect (@total) {
    chomp($conect);

    $cheke = $conect . $web;

    $doc = get($cheke);

    print "[-] Abriendo y Añadiendo # $rep : $cheke \n";
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Quizás el problema sea que el MSDOS interpreta el '?' como un comodín del shell. Intenta poner la URL entrecomillada. Pon también un print después del <> para saber qué es lo que recibes. Por ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "[$web]\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Así sabes qué es lo que has recibido.
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 1 invitado

cron