• Publicidad

Problemas con "getstore"

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Problemas con "getstore"

Notapor cpinilla » 2007-11-26 11:28 @519

Hola a todos, soy ultra nuevo en esto (foros, no Perl :-)) pero ando un poco desesperado porque es algo del curro y ya no sé qué hacer.

El problema estoy seguro que viene del "getstore" pero el tema es que en $file no me llega a meter la página entera que le estoy pasando.

Aquí esta el código: se trata de una subrutina a la que le llega $1 que es un mail.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub checkFogBugzAssignation {

  @_ == 1 || die "Usage: checkFogBugzAssignation case\n";

  INFO("======================================");

  my ($case) = @_;

  INFO("$0: checking case $case");

  my $page =
      "http://10.0.0.7/default.asp?"
    . "token=jam472x&cmd=search&q=$case&cols=ixBug,sStatus,sPersonAssignedTo,latestEvent";

  my $file = "fogcase.html";

  my $status = getstore( $page, $file );

  DEBUG("$0: page for case $case succesfully stored")
    if is_success($status);

  open( FILE, $file );

  my ( $statusFound, $activeFound, $assignedToFound, $mailFound ) = ( 0, 0, 0, 0 );
  my $mail;

  while (<FILE>) {

    my $line = $_;

    #DEBUG("Line: $line");

    if ( !$mailFound ) {

      if ($statusFound) {
        if ($activeFound) {
          if ($assignedToFound) {
            if ( $line =~ /Email:\s*(\w+)(\@)/ ) {

              $mailFound = 1;
              $mail      = $1;
              DEBUG("$0: User found: $mail");
              close FILE;
              INFO("================================");
                          return $mail;
            }
          }
          else {
                       
            if ( $line =~ /Assigned&nbsp;to/ ) {
              $assignedToFound = 1;

              DEBUG("Assigned found: $line");
            }
          }
        }
        else {

          if ( $line =~ /Active/ ) {
            $activeFound = 1;

           DEBUG("Active found: $line");
          }
        }
      }
      else {

                if ( $line =~ /Status/ ) {
          $statusFound = 1;

         DEBUG("Status found: $line");
        }
      }
    }
    else {
      close FILE;
      exit 1;
    }
  }    #while(<FILE>)

  close FILE;
  WARN("$0: ERROR: case $case is possibly not active!");
  INFO("==========================");

  exit 1;

}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4




Tengo que evaluar si existen las palabras de los if, pero ya desde el principio, si muestro la variable $file veo que no está toda la página cargada, y en la siguiente iteración apenas hay una línea de la página, y la tercera vez ya ni la hace.

Lo suyo es que me cargue la URL y me compruebe que son correctas todas las comprobaciones de los if. Necesito llegar al return $mail.

A quien pueda ayudarme: HELP.

Gracias y un saludo a todos.
cpinilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2007-11-26 11:11 @507

Publicidad

Notapor explorer » 2007-11-26 11:49 @534

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

Yo no veo fallos en el código, salvo que esté muy escondido.

Sería interesante ver un ejemplo de qué es lo que graba getstore en disco.
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

Ejemplo de salida

Notapor cpinilla » 2007-11-27 03:38 @193

En vez de la URL que viene en el código le voy a pasar la www.google.es de la que todos podéis ver el código original de la página y comprobar si me esta guardando bien.

Esto es lo que sacan los INFO si le paso la URL www.google.es

Código: Seleccionar todo
Log4perl: Seems like no initialization happened. Forgot to call init()?
INFO> =======================================================
INFO> /cvsaux/controlScripts/chkmsg_2.pl: checking case 9679
INFO> fogcase.html
INFO> FILE
INFO> Line: <html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{font-family:arial,sans-serif}.h{font-size:20px}.h{color:#3366cc}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}</style><script>window.google={kEI:"Z9VLR929KIiMiALa2ezmCA",kEXPI:"17259,17735",kHL:"es"};function sf(){document.f.q.focus()}
INFO> Line: </script></head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="sf();if(document.images){new Image().src='/images/nav_logo3.png'}" topmargin=3 marginheight=3><div align=right id=guser style="font-size:84%;padding:0 0 4px" width=100%><nobr><a href="/url?sa=p&pref=ig&pval=3&q=http://www.google.es/ig%3Fhl%3Des&usg=AFQjCNH25tZa9pK_qlkku2QH55RuJCamdw">iGoogle</a> | <a href="https://www.google.com/accounts/Login?continue=http://www.google.es/&hl=es">Acceder</a></nobr></div><center><br clear=all id=lgpd><table cellpadding=0 cellspacing=0 border=0><tr><td align=right valign=bottom><img src=images/hp0.gif width=158 height=78 alt="Google"></td><td valign=bottom><img src=images/hp1.gif width=50 height=78 alt=""></td><td valign=bottom><img src=images/hp2.gif width=68 height=78 alt=""></td></tr><tr><td class=h align=right valign=top><b></b></td><td valign=top><img src=images/hp3.gif width=50 height=32 alt=""></td><td valign=top class=h><font color=#666666 style=font-size:16px><b>Espa&ntilde;a</b></font></td></tr></table><br><form action="/search" name=f><style>#lgpd{display:none}</style><script defer><!--
INFO> Line: //-->
INFO> Line: </script><table border=0 cellspacing=0 cellpadding=4><tr><td nowrap><font size=-1><b>La Web</b>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://images.google.es/imghp?oe=ISO-8859-1&hl=es&tab=wi">Imágenes</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://news.google.es/nwshp?oe=ISO-8859-1&hl=es&tab=wn">Noticias</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://maps.google.es/maps?oe=ISO-8859-1&hl=es&tab=wl">Maps</a><span style="position:relative;color:red;top:-5px;">¡Nuevo!</span>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://groups.google.es/grphp?oe=ISO-8859-1&hl=es&tab=wg">Grupos</a>&nbsp;&nbsp;&nbsp;&nbsp;<b><a href="/intl/es/options/" class=q>Más&nbsp;&raquo;</a></b></font></td></tr></table><table cellpadding=0 cellspacing=0><tr valign=top><td width=25%>&nbsp;</td><td align=center nowrap><input name=hl type=hidden value=es><input type=hidden name=ie value="ISO-8859-1"><input maxlength=2048 name=q size=55 title="Buscar con Google" value=""><br><input name=btnG type=submit value="Buscar con Google"><input name=btnI type=submit value="Voy a tener suerte"></td><td nowrap width=25%><font size=-2>&nbsp;&nbsp;<a href=/advanced_search?hl=es>Búsqueda avanzada</a><br>&nbsp;&nbsp;<a href=/preferences?hl=es>Preferencias</a><br>&nbsp;&nbsp;<a href=/language_tools?hl=es>Herramientas del idioma</a></font></td></tr><tr><td align=center colspan=3><font size=-1><span style="text-align:left">Buscar en: <input id=all type=radio name=meta value="" checked><label for=all> la Web </label><input id=lgr type=radio name=meta value="lr=lang_es"><label for=lgr> páginas en español </label><input id=cty type=radio name=meta value="cr=countryES"><label for=cty> páginas de Espa&ntilde;a </label></span></font></td></tr></table></form><br><font size=-1>Google.es ofrecido en: <a href="http://www.google.es/setprefs?sig=0_-hnTn6Rzu6mjbZnSDPOeGiXBMsQ=&hl=ca">Català</a>  <a href="http://www.google.es/setprefs?sig=0_-hnTn6Rzu6mjbZnSDPOeGiXBMsQ=&hl=gl">galego</a>  <a href="http://www.google.es/setprefs?sig=0_-hnTn6Rzu6mjbZnSDPOeGiXBMsQ=&hl=eu">euskara</a> </font><br><br><br><font size=-1><a href="/intl/es/ads/">Programas de Publicidad</a> - <a href="/services/">Soluciones Empresariales</a> - <a href="/intl/es/about.html">Todo acerca de Google</a> - <a href=http://www.google.com/ncr>Google.com in English</a></font><p><font size=-2>&copy;2007 Google</font></p></center></body></html>
INFO> 0, 0, 0, 0
WARN> /cvsaux/controlScripts/chkmsg_2.pl: ERROR: case 9679 is possibly not active!
INFO> =======================================================


¿Por qué no hay siempre lo mismo guardado? Necesito hacer tres comprobaciones sobre la URL que le pase, pero no me guarda todo el código ni me lo mantiene igual para poder hacer las comprobaciones.

Muchas gracias por el interes.
Un saludo.
cpinilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2007-11-26 11:11 @507

Notapor explorer » 2007-11-27 05:05 @254

Yo veo que el programa sí que se ha bajado toda la página de google.es. Pero no veo la línea de DEBUG indicando que is_success() sea correcto.

Haz que saque a pantalla el valor de retorno y lo comparas con lo indicado con LWP::Simple, para saber qué es que devuelve. Si no es correcto, intentaría volver a bajar la página. Yo pondría en ese caso un bucle while o for, de varias vueltas, con algún sleep() en medio, para no molestar, y hasta que la página se haya bajado bien o no. Y en ese caso no salgo de la rutina con un fallo.
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

DEBUG

Notapor cpinilla » 2007-11-27 05:22 @265

Voy a dejar el código, ahora con la URL de www.google.es y ademas con un valor en los IFs que sí debería encontrar, además mostraré todas las salidas posibles.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub checkFogBugzAssignation {

  @_ == 1 || die "Usage: checkFogBugzAssignation case\n";

  INFO("============================================");

  my ($case) = @_;

  INFO("$0: checking case $case");

  my $page =
      "http://www.google.es";
  my $file = "fogcase.html";

  my $status = getstore( $page, $file );

  DEBUG("$0: page for case $case succesfully stored")
      if is_success($status);

  open( FILE, $file );

  INFO ("$file");
  INFO ("FILE");

  my ( $statusFound, $activeFound, $assignedToFound, $mailFound ) = ( 0, 0, 0, 0 );
  my $mail;

  while (<FILE>) {

    my $line = $_;
        INFO ("SUCCESFULLY STORED: $status");
    INFO ("VARIABLES ACTIVAS: $statusFound, $activeFound, $assignedToFound, $mailFound");
    INFO("Line: $line");

    if ( !$mailFound ) {

      if ($statusFound) {

        if ($activeFound) {

          if ($assignedToFound) {

            if ( $line =~ /8859/ ) {

              $mailFound = 1;
              $mail      = $1;
              INFO("$0: User found: $mail");
              close FILE;
              INFO("====RETURNING MAIL====================");
                          return $mail;
            }
          }
          else {
            if ( $line =~ /8859/ ) {
              $assignedToFound = 1;

              INFO("Assigned found: $line");
            }
          }
        }
        else {
          if ( $line =~ /8859/ ) {
            $activeFound = 1;

            INFO("Active found: $line");
          }
        }
      }
      else {
        if ( $line =~ /8859/ ) {
          $statusFound = 1;

          INFO("Status found: $line");
        }
      }
    }
    else {
      close FILE;
      exit 1;
    }
  }    #while(<FILE>)

  close FILE;

  INFO ("$statusFound, $activeFound, $assignedToFound, $mailFound");

  WARN("$0: ERROR: case $case is possibly not active!");
  INFO("=====================================");

  exit 1;

}
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


He comprobado que el 8859 está dentro del código de la URL www.google.es, por lo que las debería hacer todos los IFs y poner todas las variables a 1 ademas de retornarme el $mail.
cpinilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2007-11-26 11:11 @507

Notapor cpinilla » 2007-11-27 05:27 @268

Y ahora va la salida que es lo que no me cuadra a mi ya que también veo el código correcto.


Código: Seleccionar todo
INFO> ======================================
INFO> /cvsaux/controlScripts/chkmsg_2.pl: checking case 9679
INFO> fogcase.html
INFO> FILE
INFO> SUCCESFULLY STORED: 200
INFO> VARIABLES ACTIVAS: 0, 0, 0, 0
INFO> Line: <html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{font-family:arial,sans-serif}.h{font-size:20px}.h{color:#3366cc}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}</style><script>window.google={kEI:"zu1LR-pFpo6IAuTn_PcI",kEXPI:"17259,17735",kHL:"es"};function sf(){document.f.q.focus()}
INFO> Status found: <html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{font-family:arial,sans-serif}.h{font-size:20px}.h{color:#3366cc}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}</style><script>window.google={kEI:"zu1LR-pFpo6IAuTn_PcI",kEXPI:"17259,17735",kHL:"es"};function sf(){document.f.q.focus()}
INFO> SUCCESFULLY STORED: 200
INFO> VARIABLES ACTIVAS: 1, 0, 0, 0
INFO> Line: </script></head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="sf();if(document.images){new Image().src='/images/nav_logo3.png'}" topmargin=3 marginheight=3><div align=right id=guser style="font-size:84%;padding:0 0 4px" width=100%><nobr><a href="/url?sa=p&pref=ig&pval=3&q=http://www.google.es/ig%3Fhl%3Des&usg=AFQjCNH25tZa9pK_qlkku2QH55RuJCamdw">iGoogle</a> | <a href="https://www.google.com/accounts/Login?continue=http://www.google.es/&hl=es">Acceder</a></nobr></div><center><br clear=all id=lgpd><table cellpadding=0 cellspacing=0 border=0><tr><td align=right valign=bottom><img src=images/hp0.gif width=158 height=78 alt="Google"></td><td valign=bottom><img src=images/hp1.gif width=50 height=78 alt=""></td><td valign=bottom><img src=images/hp2.gif width=68 height=78 alt=""></td></tr><tr><td class=h align=right valign=top><b></b></td><td valign=top><img src=images/hp3.gif width=50 height=32 alt=""></td><td valign=top class=h><font color=#666666 style=font-size:16px><b>Espa&ntilde;a</b></font></td></tr></table><br><form action="/search" name=f><style>#lgpd{display:none}</style><script defer><!--
INFO> SUCCESFULLY STORED: 200
INFO> VARIABLES ACTIVAS: 1, 0, 0, 0
INFO> Line: //-->
INFO> SUCCESFULLY STORED: 200
INFO> VARIABLES ACTIVAS: 1, 0, 0, 0
INFO> Line: </script><table border=0 cellspacing=0 cellpadding=4><tr><td nowrap><font size=-1><b>La Web</b>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://images.google.es/imghp?oe=ISO-8859-1&hl=es&tab=wi">Imágenes</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://news.google.es/nwshp?oe=ISO-8859-1&hl=es&tab=wn">Noticias</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://maps.google.es/maps?oe=ISO-8859-1&hl=es&tab=wl">Maps</a><span style="position:relative;color:red;top:-5px;">¡Nuevo!</span>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://groups.google.es/grphp?oe=ISO-8859-1&hl=es&tab=wg">Grupos</a>&nbsp;&nbsp;&nbsp;&nbsp;<b><a href="/intl/es/options/" class=q>Más&nbsp;&raquo;</a></b></font></td></tr></table><table cellpadding=0 cellspacing=0><tr valign=top><td width=25%>&nbsp;</td><td align=center nowrap><input name=hl type=hidden value=es><input type=hidden name=ie value="ISO-8859-1"><input maxlength=2048 name=q size=55 title="Buscar con Google" value=""><br><input name=btnG type=submit value="Buscar con Google"><input name=btnI type=submit value="Voy a tener suerte"></td><td nowrap width=25%><font size=-2>&nbsp;&nbsp;<a href=/advanced_search?hl=es>Búsqueda avanzada</a><br>&nbsp;&nbsp;<a href=/preferences?hl=es>Preferencias</a><br>&nbsp;&nbsp;<a href=/language_tools?hl=es>Herramientas del idioma</a></font></td></tr><tr><td align=center colspan=3><font size=-1><span style="text-align:left">Buscar en: <input id=all type=radio name=meta value="" checked><label for=all> la Web </label><input id=lgr type=radio name=meta value="lr=lang_es"><label for=lgr> páginas en español </label><input id=cty type=radio name=meta value="cr=countryES"><label for=cty> páginas de Espa&ntilde;a </label></span></font></td></tr></table></form><br><font size=-1>Google.es ofrecido en: <a href="http://www.google.es/setprefs?sig=0_g_dLLGggNK6qPC4MrxGDV7pRleE=&hl=ca">Català</a>  <a href="http://www.google.es/setprefs?sig=0_g_dLLGggNK6qPC4MrxGDV7pRleE=&hl=gl">galego</a>  <a href="http://www.google.es/setprefs?sig=0_g_dLLGggNK6qPC4MrxGDV7pRleE=&hl=eu">euskara</a> </font><br><br><br><font size=-1><a href="/intl/es/ads/">Programas de Publicidad</a> - <a href="/services/">Soluciones Empresariales</a> - <a href="/intl/es/about.html">Todo acerca de Google</a> - <a href=http://www.google.com/ncr>Google.com in English</a></font><p><font size=-2>&copy;2007 Google</font></p></center></body></html>
INFO> Active found: </script><table border=0 cellspacing=0 cellpadding=4><tr><td nowrap><font size=-1><b>La Web</b>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://images.google.es/imghp?oe=ISO-8859-1&hl=es&tab=wi">Imágenes</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://news.google.es/nwshp?oe=ISO-8859-1&hl=es&tab=wn">Noticias</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://maps.google.es/maps?oe=ISO-8859-1&hl=es&tab=wl">Maps</a><span style="position:relative;color:red;top:-5px;">¡Nuevo!</span>&nbsp;&nbsp;&nbsp;&nbsp;<a class=q href="http://groups.google.es/grphp?oe=ISO-8859-1&hl=es&tab=wg">Grupos</a>&nbsp;&nbsp;&nbsp;&nbsp;<b><a href="/intl/es/options/" class=q>Más&nbsp;&raquo;</a></b></font></td></tr></table><table cellpadding=0 cellspacing=0><tr valign=top><td width=25%>&nbsp;</td><td align=center nowrap><input name=hl type=hidden value=es><input type=hidden name=ie value="ISO-8859-1"><input maxlength=2048 name=q size=55 title="Buscar con Google" value=""><br><input name=btnG type=submit value="Buscar con Google"><input name=btnI type=submit value="Voy a tener suerte"></td><td nowrap width=25%><font size=-2>&nbsp;&nbsp;<a href=/advanced_search?hl=es>Búsqueda avanzada</a><br>&nbsp;&nbsp;<a href=/preferences?hl=es>Preferencias</a><br>&nbsp;&nbsp;<a href=/language_tools?hl=es>Herramientas del idioma</a></font></td></tr><tr><td align=center colspan=3><font size=-1><span style="text-align:left">Buscar en: <input id=all type=radio name=meta value="" checked><label for=all> la Web </label><input id=lgr type=radio name=meta value="lr=lang_es"><label for=lgr> páginas en español </label><input id=cty type=radio name=meta value="cr=countryES"><label for=cty> páginas de Espa&ntilde;a </label></span></font></td></tr></table></form><br><font size=-1>Google.es ofrecido en: <a href="http://www.google.es/setprefs?sig=0_g_dLLGggNK6qPC4MrxGDV7pRleE=&hl=ca">Català</a>  <a href="http://www.google.es/setprefs?sig=0_g_dLLGggNK6qPC4MrxGDV7pRleE=&hl=gl">galego</a>  <a href="http://www.google.es/setprefs?sig=0_g_dLLGggNK6qPC4MrxGDV7pRleE=&hl=eu">euskara</a> </font><br><br><br><font size=-1><a href="/intl/es/ads/">Programas de Publicidad</a> - <a href="/services/">Soluciones Empresariales</a> - <a href="/intl/es/about.html">Todo acerca de Google</a> - <a href=http://www.google.com/ncr>Google.com in English</a></font><p><font size=-2>&copy;2007 Google</font></p></center></body></html>
INFO> 1, 1, 0, 0
WARN> /cvsaux/controlScripts/chkmsg_2.pl: ERROR: case 9679 is possibly not active!
INFO> =====================================



El check de carga como veis me da $status=200 que he visto por ahí que está dentro del rango de correcto.

Con la página bien cargada, debería encontrar los cuatro "8859" y poder ver un INFO> 1, 1, 1, 1 y que me devuelva $mail.

Muchas gracias por las molestias y un saludo.
cpinilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2007-11-26 11:11 @507

Notapor explorer » 2007-11-27 06:04 @294

El $mailFound no llega a ponerse, porque la página de google.es no tiene el número de líneas suficientes como para que active todas las variables de tu programa. Sólo tiene 4, de las que solo 2 tienen el 8859.

Esto no indica claramente tu problema. Depende de lo que realmente estás procesando. La cascada de if depende mucho del número de líneas leídas, lo que es malo porque si la página que quieres procesar cambia en el futuro, tendrás que revisar esos if.

Creo que se podría arreglar si leyeses todo el fichero en una variable escalar y luego extrajeses la información que te interesa con las expresiones regulares, adaptadas a trabajar en texto con múltiples líneas.
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 cpinilla » 2007-11-27 06:26 @309

Perdona mi ignorancia ya que no llevo mucho tiempo con Perl, pero, ¿cómo podría cargar toda la página en un fichero/variable e ir leyendo de allí las líneas que me interesen?

Has acertado totalmente con el problema que tengo, y es que este código antes funcionaba perfectamente porque siempre le llegaba la misma URL y se programó para esa URL. El problema es que el formato y el código de la URL han variado ligeramente por exigencias de la nueva API y quería intentar adaptarlo antes que reprogramarlo de cero.

Muchas gracias por intentar ayudarme, si no lo saco en un par de días lo haremos de cero (ufffff q pereza).

Saludos Camellos.
cpinilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2007-11-26 11:11 @507

Notapor explorer » 2007-11-27 07:33 @356

Para leer todo el fichero en una variable escalar:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $fichero = 'kk.txt';
my $texto = do{ undef $/; open F, "<$fichero"; <F> };

print $texto;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


o también:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open F, "<$fichero";
my $texto = join '', <F>;
close F;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


o también:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use File::Slurp;
my $text = read_file( 'kk.txt' );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y más...


Luego, para buscar el Email, puedes hacer algo como esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$texto =~ /Email:\s*(\w+)\@/sm;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Es decir, buscamos por todo el texto, una cadena 'Email:', seguida posiblemente de algunos espacios, y capturamos todo lo que sigue hasta la próxima arroba.
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

Va arrancando

Notapor cpinilla » 2007-11-27 08:58 @415

Bueno, bueno. Muchísimas gracias. Ahora que tengo cargada toda la URL en un archivo plano esto parece que empieza a funcionar.

Ya llego hasta la comprobación del Mail. Si pudieras pasarme como busco la cadena mail del tipo:

Código: Seleccionar todo
Email="[email protected]"


Igual es mucho pedir ya... si no da igual porque esto parece que ya empieza a funcionar un poco y ha sido gracias a este foro.

Un saludo a todos, en especial al moderador que me ha echado un cable.

Gracias.
cpinilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2007-11-26 11:11 @507

Siguiente

Volver a Intermedio

¿Quién está conectado?

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