[SP-pm] perl - expect

Renato Santos renato.cron at gmail.com
Thu Apr 17 13:03:56 PDT 2014


Não sei de qual expect você ta falando.

Pode ser do https://metacpan.org/pod/distribution/Expect/Expect.pod

mas mesmo assim, eu nunca usei ele, mas pelo que li rapidamente, ele
funciona lendo o STDOUT/ERR de um processo e escrevendo as respostas
dependendo das regexp no STDIN.

Você pode confirmar se é isso?
Se for, qual o formato que esta o texto de entrada (ou seja, a saida do
aplicativo) assim podemos ensinar qual regexp você precisa usar.


2014-04-17 16:58 GMT-03:00 Frederico Melo <fdmmelo at gmail.com>:

> 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: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron <http://twitter.com/#!/renato_cron>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140417/c6e88e3c/attachment-0001.html>


More information about the SaoPaulo-pm mailing list