[SP-pm] perl - expect

Tiago Peczenyj tiago.peczenyj at gmail.com
Fri Apr 18 16:46:52 PDT 2014


dá dinheiro :P


2014-04-18 20:45 GMT-03:00 Andre Carneiro <andregarciacarneiro at gmail.com>:

> 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
>
> =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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140418/e4b0f545/attachment-0001.html>


More information about the SaoPaulo-pm mailing list