[SP-pm] perl - expect
Daniel de Oliveira Mantovani
daniel.oliveira.mantovani at gmail.com
Thu Apr 17 13:33:24 PDT 2014
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
More information about the SaoPaulo-pm
mailing list