[SP-pm] Melhor forma para...

Renato Santos renato.cron at gmail.com
Mon Jul 15 15:37:26 PDT 2013


Hash não mantem ordem.

Você pode criar uma array com a ordem desejada e mandar escrever na ordem.

for my $letra_atual (qw /A C G T/) {
    print OFILE $nucleotides{$letra_atual}, " ";
}

Lembrando que fazendo assim, vai ter um espaço a mais no final do arquivo,
isso importa?


2013/7/15 Rafael Silveira <dev.silveira at yahoo.com>

> Valeu Tiago.
>
> Cara, na primeira vez eu usei hash. Porém tive problemas para executar o
> counting, mas ai dei uma pesquisada e ficou assim:
>
> #!/usr/bin/env perl
>
> use strict;
> use warnings;
>
> open IFILE, '<', '../../data/string/counting.txt' or die('File not found');
>
> my %nucleotides = (
>   'A' => 0,
>   'C' => 0,
>   'G' => 0,
>   'T' => 0,
> );
>
> while (my $line = <IFILE>) {
>   chomp $line;
>
>   for my $letter (keys %nucleotides) {
>     $nucleotides{$letter} += ( () = $line =~ /$letter/g );
>   }
> }
>
> close IFILE;
>
> open OFILE, '>', '../../output/string/counting.txt' or die('Can\'t create
> file');
> print OFILE join(' ', values(%nucleotides));
> close OFILE;
>
> Porém não mantém a ordem A C G T. O Perl muda a ordem dessa lista baseado
> nas letras (a que vier primeiro) que ele encontra no arquivo?
>
> Já tentei usar sorte, e não funcionou. Desculpa galera, sou newbie demais
> em perl. E consigo aprender melhor com exemplos!
>
> []'s
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at 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>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130715/58437d87/attachment.html>


More information about the SaoPaulo-pm mailing list