[SP-pm] perl - expect

Marcio - Google marciorp at gmail.com
Fri Apr 18 11:22:06 PDT 2014


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 em gmail.com> escreveu:

> Isso eu sei, só queria entender de onde saiu o " devemos evitar "
> Em 18/04/2014 11:25, "Leonardo Ruoso" <leonardo em ruoso.com> escreveu:
>
>> 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
>>
>> =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
>
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140418/47936c21/attachment-0001.html>


More information about the SaoPaulo-pm mailing list