Boa noite mongers.

Graças a sugestão do nosso amigo Felipe Leprevost, entrei no roseland.info e 
comecei a brincar.

O primeiro problema foi contar o número de ocorrencias numa string.

Eis o código que eu utilizei.

#!/usr/bin/env perl

use strict;
use warnings;

open IFILE, '<', '../../data/string/counting.txt' or die('File not found');

my @nucleotides = qw(0 0 0 0);

while (my $line = <IFILE>) {
  chomp $line;
  
  $nucleotides[0] += ($line =~ tr/A/g/);
  $nucleotides[1] += ($line =~ tr/C/g/);
  $nucleotides[2] += ($line =~ tr/G/g/);
  $nucleotides[3] += ($line =~ tr/T/g/);
}
close IFILE;

open OFILE, '>', '../../output/string/counting.txt' or die('Can\'t create 
file');
print OFILE join(" ", @nucleotides);
close OFILE;

O problema é que não estou satisfeito com o código na hora que eu somo o numero 
do ocorrencias nos indices da array:


  $nucleotides[0] += ($line =~ tr/A/g/);
  $nucleotides[1] += ($line =~ tr/C/g/);
  $nucleotides[2] += ($line =~ tr/G/g/);
  $nucleotides[3] += ($line =~ tr/T/g/);

Existe uma forma melhor para fazer isso em uma linha?

[]'s
=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

Responder a