nunca usei assim mas baseado neste documento: http://search.cpan.org/~rgiersig/Expect-1.15/Expect.pod
vc teria que usar o exp_continue no fim de cada subrotina. 2014-04-17 16:58 GMT-03:00 Frederico Melo <[email protected]>: > 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 > > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
