[SP-pm] Dúvida
Alexandre Tashima
aktashi at hotmail.com
Fri Aug 8 04:19:19 PDT 2008
Legal. Obrigado a todos pelas dicas.
Abraço,
Alexandre
> Date: Thu, 7 Aug 2008 18:38:57 -0300
> From: wendelscardua em gmail.com
> To: saopaulo-pm em mail.pm.org
> Subject: Re: [SP-pm] Dúvida
>
> my($dna, $a, $c, $g, $t, $length, $ver);
>
> opções:
>
> $dna = $_[0]; # o primeiro/zeroésimo elemento de @_
>
> ou
>
> ($dna) = @_;
>
> ou
>
> $dna = shift @_; # que arranca e devolve o primeiro cara de @_;
>
> ou
>
> $dna = shift; # que usa o array sub-entendido @_ ; ( "sublinhado" ,
> "sub-entendido" ...)
>
> etc...
>
> $dna = @_; tá errado porque $dna é um "escalar". Atribuir @_ a ele
> pede o valor escalar de @_. E o valor escalar de uma lista não é o
> primeiro cara dela, mas sim o tamanho dela (então $dna == 1 )
>
> []s
> Wendel
>
> 2008/8/7 Alexandre Tashima <aktashi em hotmail.com>:
> > Pessoal,
> >
> > Estou com uma nova dúvida. Escrevi um programinha de exercício do livro
> > "Beginning Perl for Bioinformatics", mas ele está com algum erro que eu
> > estou quebrando a cabeça e não consigo achar. É um programa para contar a
> > frequência de cada uma das bases em uma sequência de DNA. Sem subrotina ele
> > funciona, mas agora eu criei uma subrotina e um programa principal e ele não
> > está passando a variável corretamente. O código é o seguinte:
> >
> > #!usr\bin\perl -w
> > #
> > # Este programa calcula a % de cada nucleotideo em
> > # uma sequencia de DNA
> >
> > use strict;
> > use warnings;
> >
> > # Entrada da sequencia de DNA
> > print "Entre com a sequencia de DNA:\n";
> > my($dna);
> > $dna = 'ACGTACGTACGT';
> >
> > print $dna, "\n";
> >
> > exercise($dna);
> >
> > exit;
> >
> > sub exercise {
> >
> > use strict;
> > use warnings;
> >
> > my($dna, $a, $c, $g, $t, $length, $ver);
> >
> > $dna = @_;
> >
> > print "DNA = $dna\n";
> >
> > # Teste de pausa do programa
> > $ver = <STDIN>;
> >
> > # Contagem da frequencia de cada nucleotideo
> > $a = ($dna =~ tr/Aa//);
> > $c = ($dna =~ tr/Cc//);
> > $g = ($dna =~ tr/Gg//);
> > $t = ($dna =~ tr/Tt//);
> >
> > # Calculo do tamanho do fragmento de DNA
> > $length = length($dna);
> >
> > # Calculo da porcentagem de cada residuo
> > $a = int(100*$a/$length);
> > $c = int(100*$c/$length);
> > $g = int(100*$g/$length);
> > $t = int(100*$t/$length);
> >
> > print "A = $a %\n";
> > print "C = $c %\n";
> > print "G = $g %\n";
> > print "T = $t %\n";
> > print "DNA = $length\n";
> >
> > return $dna;
> >
> > }
> >
> > Ah, e estou usando o ConTEXT ao invés do notepad. É muito melhor.
> >
> > Abraços,
> > Alexandre
> >
> >
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
_________________________________________________________________
News, entertainment and everything you care about at Live.com. Get it now!
http://www.live.com/getstarted.aspx
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080808/9c805905/attachment.html>
More information about the SaoPaulo-pm
mailing list