E depois manda o codigo final pra ter como referencia da solucao aqui nesta enxurrada de emails...
Pois derepente la na frente alguem tem o mesmo problema, e vai ler todos estes emails e não vai chegar na solućão. Então poste essa solućão tb por favor. 2013/5/2 Renato Santos <renato.c...@gmail.com> > (totalmente por fora, nunca usei esses modulos/cheguei perto desse tipo de > interação) > > but.. > > pelo que entendi, seu primeiro "expect" já captura várias informações, e > ai você quer continuar fazendo "expects" com a entrada dela, por exemplo: > > > COMECO > [NOME:CRON] > [ANO:1992] > FIM > > vc usaria o expect algo como qr/COMECO(.1)FIM/ e ai o modulo se vira pra > ler de pouco até chegar o dado 'FIM', quando faz isso, toda a string desde > o "COMECO" até "FIM" já está na memoria (nao sei exatamente se é no $1, mas > vc já deve saber como usar) e ai assim, > > isso é apenas string, vc pode até usar o expect passando o $stringref, mas > nao sei se é realmente necessário, já que você pode simplesmente usar algo > como > > while ($str =~ /\[(.+)\:(.+)\]/g){ > my ($chave,$valor) = ($1, $2); > print "$chave = $valor\n"; > } > > > > 2013/5/2 Frederico Melo <fdmm...@gmail.com> > >> Eden! Obrigado! Funcionou! Muito obrigado mesmo! >> >> Sem querer abusar, gostaria de entender melhor como crio os blocos de >> processamento dentro do expect. Por exemplo: >> >> >> #$exp->expect(5, [qr/.{1920}/ => sub { >> # my($self) = @_; >> # print $self->match; >> # >> # exp_continue; >> # }, >> # timeout => sub { die 'o sistema parou de responder' } >> # ] >> # ); >> >> Entendo que no bloco acima, limitado pelo primeiro "(" e o último ")" >> executo o print que corresponde ao retorno da REGEX. OK! É possível, dentro >> do mesmo bloco do expect, criar vários blocos limitados por "[" e "]" e >> processar várias REGEXs? Como faço isso? Seria algo como feito abaixo? >> >> >> #$exp->expect(5, [qr/.{1920}/ => sub { >> # my($self) = @_; >> # print $self->match; >> # >> # exp_continue; >> # }, >> # timeout => sub { die 'o sistema parou de responder' } >> # ], >> # >> # [qr/DATA\s+.:(.+)/ => sub { >> # my($self1) = shift; >> # print $self1->match; >> # >> # exp_continue; >> # }, >> # timeout => sub { die 'o sistema parou de responder' } >> # ] >> # ); >> >> >> Fiz isso no código e não há print do $self1, como se o código nem >> entrasse no segundo bloco de REGEX. Se coloco o segundo bloco de REGEX no >> lugar do primeiro, o print funciona. O que está errado? >> >> >> Procurei na documentação do Expect e vi que existe uma chamada para >> CallBacks. Tipo: >> >> $exp->expect($timeout, >> [ qr/regex1/ => sub { my $exp = shift; >> $exp->send("response\n"); >> exp_continue; } ], >> [ "regexp2" , \&callback, @cbparms ], >> ); >> >> >> Não soube como utilizar isso. Seria possível ajudar? >> >> >> Obrigado novamente e desculpe a trabalheira. >> >> >> Frederico >> >> 2013/4/29 Eden Cardim <e...@insoli.de> >> >>> >>> Experimenta trocar as regex mencionadas abaixo pelas sugestões que >>> seguem: >>> >>> Frederico> data: SIGLA.........: XYZ NUMERO DO COD.: 0DD >>> Frederico> qr/data:\s+(.+)NUMERO\s+(.+)/ >>> >>> qr/NUMERO DO COD\.*?:\s*?(\S+)/; >>> >>> Frederico> data: LOCALIDADE....: XISYPSZE >>> Frederico> qr/data:\s+LOCALIDADE(.+)/ >>> >>> qr/LOCALIDADE\.*?:\s*?(\S+)/; >>> >>> -- >>> Eden Cardim -- Insolide Soluções de TI Ltda. >>> +55 11 9644 8225 >>> http://insoli.de >>> =begin disclaimer >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> SaoPaulo-pm mailing list: SaoPaulo-pm@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@pm.org >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron <http://twitter.com/#!/renato_cron> > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: SaoPaulo-pm@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@pm.org L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer