[SP-pm] ordem dos valores numa array escorregadia
Rodrigo Fernandes
rodrigopan em yahoo.com
Segunda Agosto 6 01:44:13 PDT 2007
Obrigado pelas dicas, vou estudar e depois pergunto
novamente! ;-)
>
> Rodrigo, o teu código desperdiça a condição de
> saída, e usa um
> "last unless" logo a seguir para fazer a mesma
> coisa. Isto custa
> "caro" em tempo de processamento, e, mais
> importante, em
> manutenibilidade do programa (sendo elegante, é mais
> fácil de
> manter). Copiei o trecho de código de que eu estou
> falando abaixo:
>
> sub MatchDecreasedForms{
> GetLineResult;
> GetLineLexemas;
> while (1){
> last unless ($lineresults[$countb]);
>
> while (1){
> last unless ($linelexemas[$count]);
>
> if ($linelexemas[$count] eq
> $lineresults[$countb]){
> print "$lineresults[$countb]";
> $matchedcash[$count] = $countb;
>
> }
> $count++;
> }
> $countb++;
> $count = 0;
> }
> print @matchedcash;
> }
>
> Minha sugestão é usar
>
> ### EU NÃO TESTEI O CÓDIGO! Use por sua conta e
> risco!
> sub MatchDecreasedForms{
> my @lineresults = GetLineResult;
> my @linelexemas = GetLineLexemas;
>
> my ( $line_counter, @matchedcash );
>
> RESULTS:
> foreach my $result ( @lineresults ) {
> LEXEMA:
> foreach my $lexema ( @linelexemas ) {
> if ( $lexema eq $result ) {
> print $result;
> push @matchedcash, $line_counter;
> }
> }
> $line_counter++;
> }
>
> print @matchedcash;
> }
>
> # Desafio: implementar a mesma coisa, LEGÍVEL
> (não, isto não é
> golf), SEM USAR um contador de linhas
> ($line_counter).
> # Dica: existe uma variável especial do perl que
> indica a linha do
> arquivo que está sendo lido.
>
> Manutenibilidade é a primeira prioridade de quem
> codifica. A
> segunda é se certificar se funciona. ;-)
> Putamplexos!
> --
> Luis Motta Campos (a.k.a. Monsieur Champs) is a
> software engineer,
> Perl fanatic evangelist, and amateur {cook,
> photographer}
>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
____________________________________________________________________________________
Fussy? Opinionated? Impossible to please? Perfect. Join Yahoo!'s user panel and lay it on us. http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7
Mais detalhes sobre a lista de discussão SaoPaulo-pm