[SP-pm] Perl para automação em acesso a x3270 IBM
Marcio - Google
marciorp at gmail.com
Tue Jul 10 18:20:58 PDT 2012
Em 10 de julho de 2012 04:16, Nelson Ferraz <nferraz em gmail.com> escreveu:
> Em 10 de julho de 2012 03:16, Marcio - Google <marciorp em gmail.com> escreveu:
>> Olá Nelson, obrigado!
>>
>> Sobre a sugestão 1, vou usar a partir de agora. O eles fazem?
>
> use strict, entre outras coisas, torna a declaração de variáveis
> obrigatória. Isso ajuda a evitar muitos tipos de erros.
> use warnings mostra alertas úteis.
>
>> Em relação ao pump, eu tentei usar, mais não sei o que esperar de
>> retorno. Pode ser qualquer coisa ou simplesmente nada.
>
> Se você não sabe o que esperar, pode usar um timer. Se você sabe, aí
> pode usar uma expressão regular.
>
>> O código adaptado ficou assim:
>>
>> my $h = start \@s3270, \$in, \$out, \$err, timeout( 100 );
>> ...
>> $in .= "Ascii(0,0,24,80)\n";
>> pump $h while length $in; #Até aqui tudo certo. Pelo que entendi
>> ele fica no loop até enviar toda a entrada.
>
> Foi isso o que eu entendi também.
>
> Você tentou verificar o resultado em $out depois de executar o pump?
Sim. Sempre vazio. Tentei usar o sleep para esperar 2 segundos mais nada.
>
> Verifique também como usar um timer, pois as vezes existe um pequeno
> delay entre o envio e a resposta.
>
> Finalmente... talvez seja bom colocar os seus comandos em um array e
> enviá-los para uma sub:
>
>
> my @commands = (
> "command1",
> "command2",
> "command3",
> );
>
> my $res = run_these(@commands);
>
> sub run_these {
> my @cmd = @_;
>
> # prepare
> # ...
>
> for my $cmd (@cmd) {
> # run
> # ...
> }
>
> # return
> return $out;
> }
>
> Com isso você não precisará ficar concatenando strings, e poderá
> executar os comandos assim:
>
> my $res = run_these(
> 'command1',
> 'command2',
> 'command3',
> );
>
> # do something with $res1
>
> my $res = run_these(
> 'command4',
> 'command5',
> 'command6',
> );
>
> # do something with $res2
Entendi, vou montar o código e testar.
Muito obrigado pelas dicas ... uma hora eu aprendo Perl ... :-)
>
> # so on...
> =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
More information about the SaoPaulo-pm
mailing list