[SP-pm] Perl para automação em acesso a x3270 IBM

Nelson Ferraz nferraz at gmail.com
Mon Jul 9 11:24:50 PDT 2012


Bem vindo `a lista de discussao, Marcio!

Obrigado por ter contextualizado o problema e enviado o codigo -- isso
facilita muito a vida de quem quer ajudar! :)

E parabens por ter ido tao longe!

Entao... mesmo sem ter acesso ao seu ambiente, aqui vao algumas sugestoes:

1) SEMPRE comece os seus programas com:

    use strict;
    use warnings;

Isso vai te poupar muita dor de cabeca a longo prazo!

2) Acho que o que voce precisa e' do comando pump, como mostra o exemplo:

   ## Build the harness, open all pipes, and launch the subprocesses
   my $h = start \@cat, \$in, \$out;
   $in = "first input\n";

   ## Now do I/O.  start() does no I/O.
   pump $h while length $in;  ## Wait for all input to go

   ## Now do some more I/O.
   $in = "second input\n";
   pump $h until $out =~ /second input/;

   ## Clean up
   finish $h or die "cat returned $?";

3) Voce tambem pode usar uma expressao regular para esperar por uma
determinada string:

   $h = harness \@smbclient, \$in, \$out;

   $in = "cd /src\n";
   $h->pump until $out =~ /^smb.*> \Z/m;
   die "error cding to /src:\n$out" if $out =~ "ERR";
   $out = '';

   $in = "mget *\n";
   $h->pump until $out =~ /^smb.*> \Z/m;
   die "error retrieving files:\n$out" if $out =~ "ERR";

   $in = "quit\n";
   $h->finish;

Espero que isso ajude... caso contrario, continue mandando suas duvidas!


More information about the SaoPaulo-pm mailing list