[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