<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>