• Publicidad

Ayuda con wget y Perl

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

Ayuda con wget y Perl

Notapor brianstanley » 2011-10-22 17:34 @773

¿Qué tal, amigos? Soy nuevo en el foro y recién estoy dando mis primeros pasos con Perl y necesito ayuda haciendo el siguiente código:

La idea es bajar el html de un sitio. El tema es que el wget me guarda los html con un nombre así: %OA y no con el nombre del html descargado. Este es el código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print "ingresa el sitio que deseas bajar el html: ";
  2. my $sitio= <>;
  3.  
  4. if($sitio != null){
  5.     print $sitio;
  6.  
  7. } else {
  8.     system("wget  \"$sitio\"");
  9. }
  10.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Muchísimas gracias y saludos a todos.
brianstanley
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2011-10-16 16:58 @749

Publicidad

Re: Ayuda con wget y Perl

Notapor explorer » 2011-10-22 20:25 @892

Bienvenido a los foros de Perl en español, brianstanley.

Estos son los fallos que he encontrado:
  • $sitio está guardando lo que ha escrito el usuario, incluyendo el carácter de fin de línea que el usuario ha pulsado en su teclado para terminar de enviar la entrada a tu programa. Ese carácter no lo necesitas, ni tu ni wget, así que es mejor quitarlo. De hecho, ese es el carácter que le está dando el nombre a los ficheros. En la línea 3, pon esto:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
    1. chomp $sitio;
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
  • En la línea 4 estás intentando hacer una comparación con 'null'. 'null' no existe en Perl. Quizás quisiste decir una cadena vacía: ''. Además, la comparación entre cadenas de caracteres no es con el operador matemático '!=', sino con 'ne' (cadenas distintas). Además, no tiene sentido que preguntes si $sitio es distinto de una cadena vacía, para luego imprimirla en la línea 5. Lo que quieres es, en ese caso, es pasarla a wget. Lo correcto será preguntar si el usuario no ha escrito ningún sitio, y en ese caso, terminar el programa:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
    1. if ($sitio eq '') {   # Si el $sitio es vacío...
    2.     print "No ha escrito ningún sitio. FIN\n";
    3.     exit;
    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

Re: Ayuda con wget y Perl

Notapor brianstanley » 2011-10-22 20:37 @900

Muchas gracias por la respuesta, me sirvió mucho.

Lo de la comparación es porque vengo de un lenguaje como PHP y por ahí anda la confusión ¡je,je! y lo de imprimir en la línea 5 me olvidé de sacarlo a la hora de postearlo acá. Era solo para ver qué me imprimía ¡je,je!

Muchas gracias y saludos
brianstanley
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2011-10-16 16:58 @749


Volver a Básico

¿Quién está conectado?

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