[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