[Cascavel-pm] Voltando...
Daniel Ruoso
daniel em ruoso.com
Terça Novembro 4 11:47:43 CST 2003
>1o. Vc usou " next if /^$/; ". Entendo perfeitamente isto. Porem, acho
> estranho q o Perl possibilita trocar o comando com o argumento. C eu
> usar " if /^$/ next ; " dah no mesmo. Nao eh o primeiro caso de troca de
> posicao entre comando e argumento que vejo. Isso me deixa meio confuso
> as vezes, e nunca sei como eh melhor escrever. Ou... tanto faz ?
Há sempre mais de um jeito de fazer... :)
next unless /^.+$/;
next if /^$;
if ($_ =~ /^$) { next };
> 2o. Qdo vc usa -> , o q isto quer dizer? Eh algum tipo de referencia, ou
> apontador?
o operador -> indica a de-referenciação de uma variável. Ou seja...
Se eu colocar uma referência para um array em um scalar:
my $lalala = [qw(a b c d e f)];
para acessar o elemento 0 do array eu tenho primeiro que de-referenciar
o scalar..
my $item = $lalala->[0];
Obs.:
Para navegar em mais de uma referência (arrays de arrays) a seta não é
mais necessária:
my $lalala = [[1,2,3],[4,5,6],[7,8,9]];
print $lalala->[0]->[0]; # imprime 1
print $lalala->[0][0]; # exatamente a mesma coisa de antes.
Um livro que explica isso muito bem é o Programming Perl, publicado pela
O'Reilly (Leitura obrigatória:).
> Acho q vou ter que deixar os bares um pouco de lado e me de
> dicar mais ao
> estudo. :-P
>
> []'s
>
> Nelson Ferraz wrote:
>
> > > O resultado deverá ser:
> > >
> > > CACC
> > > S5 : 8
> > > S22 : 4
> > > ACGG
> > > S15 : 2
> > > AACT
> > > S10 : 3
> >
> > Hmmm... só depois de enviar a mensagem percebi que os resultados não
> > estavam ordenados. Isto é fácil de resolver. Aqui vai uma nova versão
> > (desta vez estou lendo as linhas diretamente do final do arquivo):
> >
> > !/usr/bin/perl
> >
> > while (<DATA>) {
> > next if /^$/;
> > ($tag,$cluster,$num) = split(/\s+/,uc($_));
> > $count->{$tag}->{$cluster} = $num
> > }
> >
> > foreach $tag (sort keys %{$count}) {
> > print "$tag\n";
> > foreach $cluster (sort keys %{$count->{$tag}}) {
> > $num = $count->{$tag}->{$cluster};
> > print "- $cluster\t$num\n";
> > }
> > }
> >
> > __DATA__
> > AaCT S10 3
> > CaCc S5 8
> > aCgg S15 2
> > cAcc S22 4
> >
> > --
> > Nelson Ferraz
> >
> > GNU BIS: http://www.gnubis.com.br
> >
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em mail.pm.org
> > http://cascavel.pm.org/mailman/listinfo/cascavel-pm
> >
> > --------------------------
> > Esta mensagem foi verificada
> > pelo sistema de antivírus DIM e
> > acredita-se estar livre de Virus.
> > Virus data file v4301 created Oct 31 2003
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em mail.pm.org
> http://cascavel.pm.org/mailman/listinfo/cascavel-pm
Mais detalhes sobre a lista de discussão Cascavel-pm