[SP-pm] perl - expect
Frederico Melo
fdmmelo at gmail.com
Thu Apr 17 12:58:47 PDT 2014
Monges! Socorro!
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...
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.
Ex.: se aparecer a string CONSULTA, devo disparar a subrotina consulta()
Se aparecer a string OBJETIVO, devo disparar a subrotina obj() e assim por
diante.
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.
Para verificar isso, estruturei o código .pl assim:
$exp->expect(2,
[ qr/SELECIONE/ => \&select()],
[ qr/OBJETIVO/ => \&obj()],
[ qr/AGUARDE/ => \&sai_6()],
[ qr/CONSULTA/ => \&consulta()],
[ timeout => \&cancela() ],
);
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.
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.
O que está acontecendo é que o expect ou o perl só dispara a primeira
sub... select()... independente da string encontrada...
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?
Por favor, ajudem!
Muito obrigado,
Atte.,
Frederico
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140417/dac61a46/attachment.html>
More information about the SaoPaulo-pm
mailing list