[SP-pm] perl - expect

Vinícius Miasato viniciusmiasato at gmail.com
Fri Apr 18 06:57:52 PDT 2014


Opa,

given não deveria ser evitado? Aliás não precisamos de given at all, certo?

atenciosamente,
Vinícius Miasato
Em 17/04/2014 17:41, "Tiago Peczenyj" <tiago.peczenyj at gmail.com> escreveu:

> 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>:
>
>> 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, 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
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > 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: SaoPaulo-pm at pm.org
>> >> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> >> > =end disclaimer
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >>
>> >> -dom
>> >>
>> >> --
>> >>
>> >> Daniel de Oliveira Mantovani
>> >> Business Analytic Specialist
>> >> Perl Evangelist /Astrophysics hobbyist.
>> >> +55 11 9 8538-9897
>> >> XOXO
>> >> =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
>> >
>> >
>> >
>> > =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
>> >
>>
>>
>>
>> --
>>
>> -dom
>>
>> --
>>
>> Daniel de Oliveira Mantovani
>> Business Analytic Specialist
>> Perl Evangelist /Astrophysics hobbyist.
>> +55 11 9 8538-9897
>> XOXO
>> =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
>>
>
>
>
> --
> 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: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140418/c904bb0d/attachment.html>


More information about the SaoPaulo-pm mailing list