[SP-pm] perl - expect
Leonardo Ruoso
leonardo at ruoso.com
Fri Apr 18 07:24:47 PDT 2014
Em 18 de abril de 2014 11:14, Tiago Peczenyj <tiago.peczenyj em gmail.com>escreveu:
> What?
>
*given, when and ~~ *
> Em 18/04/2014 10:58, "Vinícius Miasato" <viniciusmiasato em gmail.com>
> escreveu:
>
> 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 em 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 em gmail.com>:
>>>
>>>> Oxi, você pode fazer isso sem usar expected....
>>>>
>>>> given(<STDIN>) {
>>>>
>>>> }
>>>>
>>>> 2014-04-17 17:31 GMT-03:00 Frederico Melo <fdmmelo em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 em pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
--
Leonardo Ruoso
Journalist, Perl developer and business consultant
Media, UFC/2006; Telecom, IFCE/1998
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140418/fd885f5a/attachment.html>
More information about the SaoPaulo-pm
mailing list