<div dir="ltr"><div><div>Eden! Obrigado! Funcionou! Muito obrigado mesmo!<br><br></div>Sem querer abusar, gostaria de entender melhor como crio os blocos de processamento dentro do expect. Por exemplo:<br><br><br>#$exp->expect(5, [qr/.{1920}/ => sub {<br>

#                                         my($self) = @_;<br>#                                         print $self->match;<br>#<br>#                                         exp_continue;<br>#                                      },<br>

#                   timeout => sub { die 'o sistema parou de responder' }<br>#                  ]<br>#            );<br><br></div><div>Entendo que no bloco acima, limitado pelo primeiro "(" e o último ")" executo o print que corresponde ao retorno da REGEX. OK! É possível, dentro do mesmo bloco do expect, criar vários blocos limitados por "[" e "]" e processar várias REGEXs? Como faço isso? Seria algo como feito abaixo?<br>

<br><br></div><div>#$exp->expect(5, [qr/.{1920}/ => sub {<br>#                                         my($self) = @_;<br>#                                         print $self->match;<br>#<br>#                                         exp_continue;<br>

#                                      },<br>#                   timeout => sub { die 'o sistema parou de responder' }<br>#                  ],<br>#<br>#                  [qr/DATA\s+.:(.+)/ => sub {<br>#                                         my($self1) = shift;<br>

#                                         print $self1->match;<br>#<br>#                                         exp_continue;<br>#                                      },<br>#                   timeout => sub { die 'o sistema parou de responder' }<br>

#                  ]<br>#            );<br><br><br></div>Fiz isso no código e não há print do $self1, como se o código nem entrasse no segundo bloco de REGEX. Se coloco o segundo bloco de REGEX no lugar do primeiro, o print funciona. O que está errado? <br>

<div><div><div><br><br></div><div>Procurei na documentação do Expect e vi que existe uma chamada para CallBacks. Tipo:<br><br><pre class="">  <span class="">$exp</span><span class="">-></span><span class="">expect</span><span class="">(</span><span class="">$timeout</span><span class="">,</span>
               <span class="">[</span> <span class="">qr</span><span class="">/regex1/</span> <span class="">=></span> <span class="">sub</span> <span class="">{</span> <span class="">my</span> <span class="">$exp</span> <span class="">=</span> <span class="">shift</span><span class="">;</span>
                                     <span class="">$exp</span><span class="">-></span><span class="">send</span><span class="">(</span><span class="">"response\n"</span><span class="">);</span>
                                     exp_continue<span class="">;</span> <span class="">}</span> <span class="">],</span>
               <span class="">[</span> <span class="">"regexp2"</span> <span class="">,</span> <span class="">\&</span>callback<span class="">,</span> <span class="">@cbparms</span> <span class="">],</span>
              <span class="">);</span></pre><br></div><div>Não soube como utilizar isso. Seria possível ajudar?<br></div><div><br></div><div><br></div><div>Obrigado novamente e desculpe a trabalheira.<br><br></div><div><br>
</div></div></div><div class="gmail_extra">Frederico<br></div><div class="gmail_extra"><br><div class="gmail_quote">2013/4/29 Eden Cardim <span dir="ltr"><<a href="mailto:eden@insoli.de" target="_blank">eden@insoli.de</a>></span><br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Experimenta trocar as regex mencionadas abaixo pelas sugestões que<br>
seguem:<br>
<br>
    Frederico> data: SIGLA.........: XYZ NUMERO DO COD.: 0DD<br>
    Frederico> qr/data:\s+(.+)NUMERO\s+(.+)/<br>
<br>
qr/NUMERO DO COD\.*?:\s*?(\S+)/;<br>
<br>
    Frederico> data: LOCALIDADE....: XISYPSZE<br>
    Frederico> qr/data:\s+LOCALIDADE(.+)/<br>
<br>
qr/LOCALIDADE\.*?:\s*?(\S+)/;<br>
<div><br>
--<br>
Eden Cardim -- Insolide Soluções de TI Ltda.<br>
<a href="tel:%2B55%2011%209644%208225" value="+551196448225" target="_blank">+55 11 9644 8225</a><br>
<a href="http://insoli.de" target="_blank">http://insoli.de</a><br>
</div><div><div>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</div></div></blockquote></div><br></div></div>