[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