[Cascavel-pm] [Spam] Re: [Spam] Re: PrincipaisContribuidoresCascavelPM

Eden Cardim edencardim em gmail.com
Quinta Maio 31 09:16:35 PDT 2007


na verdade, pensei melhor e vi que a abordagem toda está errada, mas
não é por causa dos loops. Eu deveria fazer um join nas duas tabelas,
deixando a cargo do sgbd a tarefa de iterar sobre os registros.

On 5/31/07, Flavio S. Glock <fglock em gmail.com> wrote:
> Em 30/05/07, Eden Cardim<edencardim em gmail.com> escreveu:
> >
> >     my $item;
> >     my $some_rs = $c->model('Data::SomeTable');
> >     do {
> >         $item = $some_rs->next;
> >         return unless $item;
> >         } while ( $c->model('Data::AnotherTable')
> >         ->find( $item->somefield, { key => 'another_table_somekey' } ) );
> >
> >     # fazer algo com $item aqui
> >
> > Aqui, não pude declarar a variável dentro do bloco porque eu preciso
> > usar ela depois de terminado o loop. Tem outras formas de fazer, já
> > inicializando $item, mas todas as alternativas que eu consegui
> > imaginar levaram a algum tipo duplicação ou outras "deselegâncias" no
> > código.
>
> Eden:
>
> Acredito que a melhor forma de "limpar" este código é mover o loop
> para uma subrotina.
>
> De qualquer forma, você pode mover o return() para fora do loop, acho
> que fica mais fácil de entender a lógica (não testei este código):
>
>      my $some_rs = $c->model('Data::SomeTable');
>      my $item;
>      do {
>          $item = $some_rs->next;
>      }
>      while ( $item
>           && $c->model('Data::AnotherTable')
>                ->find( $item->somefield, { key => 'another_table_somekey' }
> )
>      );
>      return unless $item;
>      # fazer algo com $item aqui
>
> - Flavio S. Glock
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


-- 
Eden Cardim
Instituto Baiano de Biotecnologia
Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
Laboratório de Bioinformática


Mais detalhes sobre a lista de discussão Cascavel-pm