<div dir="ltr">Oi Tiago,<div><br></div><div>o expect é esse mesmo! Acho que meu problema vem antes disso... será? Sinceramente não sei... help!!! Eu queria que a estrutura que fiz, só disparasse uma rotina para a ocorrência da string encontrada. Da maneira que está, ele está disparando apenas a primeira sub, independente da string... </div>
<div><br></div><div>Sei que a regex para encontrar a string está certa pois, nos códigos .pl que tenho específicos para cada situação, quando rodo individualmente, funciona!</div><div><br></div><div>Vou testar o que você sugere com o exp_continue e lhe falo.</div>
<div><br></div><div>Obrigado, help!</div><div><br></div><div>Frederico</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-17 17:01 GMT-03:00 Tiago Peczenyj <span dir="ltr"><<a href="mailto:tiago.peczenyj@gmail.com" target="_blank">tiago.peczenyj@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">nunca usei assim mas baseado neste documento:<div><br></div><div><a href="http://search.cpan.org/~rgiersig/Expect-1.15/Expect.pod" target="_blank">http://search.cpan.org/~rgiersig/Expect-1.15/Expect.pod</a><br>
</div><div><br>

</div><div>vc teria que usar o exp_continue no fim de cada subrotina.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-17 16:58 GMT-03:00 Frederico Melo <span dir="ltr"><<a href="mailto:fdmmelo@gmail.com" target="_blank">fdmmelo@gmail.com</a>></span>:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Monges! Socorro!<div>Sou bem limitado na programação em perl mas estou evoluindo com o tempo. Então desculpem pelas minhas dúvidas que para vocês, pode ser muito simples...</div>


<div><br></div><div>Bom, estou utilizando expect com perl e analiso alguns outputs de um servidor, em forma texto, que devo analisar e, dependendo da ocorrência de uma string, devo disparar uma determinada sub-rotina para tratativas específicas.</div>



<div><br></div><div>Ex.: se aparecer a string CONSULTA, devo disparar a subrotina consulta()</div><div>Se aparecer a string OBJETIVO, devo disparar a subrotina obj() e assim por diante.</div><div><br></div><div>O output do servidor é verificado pelo expect e, no momento que devo tomar a decisão, a tela do output é apenas uma, com apenas uma das ocorrências abaixo.</div>



<div><br></div><div>Para verificar isso, estruturei o código .pl assim:</div><div><br></div><div><p style="margin:0px;font-size:11px;font-family:Monaco">$<span style="color:rgb(178,55,243)">exp</span><span style="color:rgb(193,53,0)">-></span>expect<span style="color:rgb(193,53,0)">(</span><span style="color:rgb(178,49,0)">2</span><span style="color:rgb(193,53,0)">,</span></p>




<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(178,69,243)"><span style="color:rgb(193,53,0)">              [ </span>qr/SELECIONE/ <span style="color:rgb(193,53,0)">=> \</span><span style="color:rgb(0,0,0)">&select</span><span style="color:rgb(193,53,0)">()],</span></p>




<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(178,69,243)"><span style="color:rgb(193,53,0)">              [ </span>qr/OBJETIVO/ <span style="color:rgb(193,53,0)">=> \</span><span style="color:rgb(0,0,0)">&obj</span><span style="color:rgb(193,53,0)">()],</span></p>




<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">              [ <span style="color:rgb(178,69,243)">qr/AGUARDE/ </span>=> \<span style="color:rgb(0,0,0)">&sai_6</span>()],</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(178,69,243)"><span style="color:rgb(193,53,0)">              [ </span>qr/CONSULTA/ <span style="color:rgb(193,53,0)">=> \</span><span style="color:rgb(0,0,0)">&consulta</span><span style="color:rgb(193,53,0)">()],</span></p>




<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">              [ <span style="color:rgb(0,0,0)">timeout </span>=> \<span style="color:rgb(0,0,0)">&cancela</span>() ],</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(193,53,0)">              );</p></div><div>Ou seja, no meu entendimento limitado, quero que o expect dispare uma das subs acima dependendo da string que ele encontrar no output do servidor.</div>



<div><br></div><div><div>Acredito que a estrutura acima, que parece uma matriz (desculpem a ignorância), vai executar TODAS as subs independente do conteúdo do output do servidor.</div></div><div><br></div><div>O que está acontecendo é que o expect ou o perl só dispara a primeira sub... select()... independente da string encontrada... </div>



<div><br></div><div>Sei que a condição para encontrar as strings funcionam pois, fiz um perl com expect para cada condição acima e, quando rodo individualmente cada .pl, funciona certo... o que estou errando? Como devo fazer o que preciso?</div>



<div><br></div><div>Por favor, ajudem!</div><div><br></div><div>Muito obrigado,</div><div>Atte.,</div><div>Frederico</div><div><br></div></div>
<br></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>
<br></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br>Tiago B. Peczenyj<br>Linux User #405772<br><br><a href="http://about.me/peczenyj" target="_blank">http://about.me/peczenyj</a>
</font></span></div>
<br>=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">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>
<br></blockquote></div><br></div>