[SP-pm] perl - expect
Andre Carneiro
andregarciacarneiro at gmail.com
Fri Apr 18 16:45:46 PDT 2014
Nossa! Espero nunca trabalhar com terminais 3270/IBM. Eles parecem
'perigosos' ...
2014-04-18 15:22 GMT-03:00 Marcio - Google <marciorp at gmail.com>:
> Acredito que ele esteja interagindo com um terminal 3270/IBM Mainframe ...
> esse assunto já rolou a um tempo atrás, iniciado por mim, houve bastante
> colaboração. Não conclui o projeto, mas no histórico tem coisas
> interessantes.
>
> Não consigo ajuda-lo porque estou praticamente sedado a alguns meses,
> desculpe.
>
> Fred, poste pelo menos um bloco completo (relevante ao assunto) do código
> que o pessoal conseguirá ajudar mais.
>
> [...]'s
>
> Marcio
>
> ========================================
> ########### Campanha Ajude o Marcio! ###########
> http://sosmarcio.blogspot.com.br/
> http://www.vakinha.com.br/VaquinhaP.aspx?e=195793
> ========================================
> Em 18/04/2014 10:34, "Tiago Peczenyj" <tiago.peczenyj at gmail.com> escreveu:
>
> Isso eu sei, só queria entender de onde saiu o " devemos evitar "
>> Em 18/04/2014 11:25, "Leonardo Ruoso" <leonardo at ruoso.com> escreveu:
>>
>>> Em 18 de abril de 2014 11:14, Tiago Peczenyj <tiago.peczenyj at gmail.com>escreveu:
>>>
>>>> What?
>>>>
>>>
>>> *given, when and ~~ *
>>>
>>>
>>>> Em 18/04/2014 10:58, "Vinícius Miasato" <viniciusmiasato at 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 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
>>>>>>
>>>>>>
>>>>> =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
>>>>
>>>>
>>>
>>>
>>> --
>>> Leonardo Ruoso
>>> Journalist, Perl developer and business consultant
>>> Media, UFC/2006; Telecom, IFCE/1998
>>>
>>> =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
>>
>>
> =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
>
>
--
André Garcia Carneiro
Software Engineer
(11)982907780
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140418/1173b3e6/attachment-0001.html>
More information about the SaoPaulo-pm
mailing list