[SP-pm] perl - expect

Frederico Melo fdmmelo at gmail.com
Sat Apr 19 18:35:58 PDT 2014


Monges mestres! Obrigado pelo apoio e atenção! Estou com acesso restrito e,
assim que der retorno com detalhes.

Márcio, espero que vc melhore! Realmente você havia iniciado esse tema de
integração há algum tempo e foi por ele que iniciei meu projeto. Obrigado
pelo apoio! O Eden tb ajudou demais! Agora tou emperrado...

Atte,
Frederico


On Thursday, April 17, 2014, Tiago Peczenyj <tiago.peczenyj at gmail.com>
wrote:

> se o cara vai ler da stdin ( e estamos admitindo que o cara fez um pipe
> para o script ) ok, mas o Expect te dá apenas a opção de controlar o
> timeout com processo como também é bidirecional.
>
> sem saber mais detalhes fica impossivel ajudar.
>
> 2014-04-17 17:33 GMT-03:00 Daniel de Oliveira Mantovani <
> daniel.oliveira.mantovani at gmail.com<javascript:_e(%7B%7D,'cvml','daniel.oliveira.mantovani at gmail.com');>
> >:
>
> Oxi, você pode fazer isso sem usar expected....
>
> given(<STDIN>) {
>
> }
>
> 2014-04-17 17:31 GMT-03:00 Frederico Melo <fdmmelo at gmail.com>:
> > Oi Daniel,
> >
> > Preciso do expect pois vou interagir com o servidor. E analiso o que esse
> > servidor escreve em uma tela para tomar a decisão do próximo passo...
> >
> > A estrutura que você sugeriu é legal mas, acho que só interagindo dentro
> do
> > perl.
> >
> > Obrigado,
> >
> >
> > 2014-04-17 17:17 GMT-03:00 Daniel de Oliveira Mantovani
> > <daniel.oliveira.mantovani at gmail.com>:
> >
> >> Porque você quer usar expected ? (Seja lá o que esse método que você
> >> não especificou de onda venha faz).
> >>
> >>            given ($text) {
> >>                obj() when /OBJETIVO/;
> >>                consulta() when /CONSULTA/;
> >>            }
> >>
> >> 2014-04-17 17:01 GMT-03:00 Tiago Peczenyj <tiago.peczenyj at gmail.com>:
> >> > 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 <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, ajude
>
>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://about.me/peczenyj
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140419/35b3e319/attachment.html>


More information about the SaoPaulo-pm mailing list