[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