[Cascavel-pm] Outro probleminha....
Adriano Vivan Borro
vivan em dim.fm.usp.br
Quinta Outubro 9 16:41:15 CDT 2003
Gente,
Eu rodei a rotina que o Flavio me sugeriu, mas nao me retornou o esperado.
Vejam onde posso ter errado, plz.
open (NOMES,"nomes2.txt);
open (SAI,">sai.txt);
while (<NOMES>)
{
($nome,$sobrenome)=chomp && split;
$h{$nome}{$sobrenome}++;
};
for $nome (sort keys %h) {
print SAI {"$nome ",
join(',', keys %{$h{$nome}})," ",
0 + keys %{$h{$nome}},"\n"};
}
A saida obtida foi....
HASH(0x100216a8)HASH(0x1002169c)HASH(0x100216cc)HASH(0x100216a8)HASH(0x1002169c)HASH(0x100216a8)
O q pode estar acotecendo?
Tks,
Adriano.
Flavio S. Glock wrote:
> Adriano Vivan Borro wrote:
> >
> > Opa,
> >
> > To quase chegando lah. O problema eh q eu precisava ordenar um arquivo
> > de 3 ou mais colunas. Tentei usar a rotina, mas nao deu certo. Digamos
> > que tenho entao, um arquivo com nomes e sobrenomes. Quero processa-lo de
> > tal forma que me retorne um arquivo com os nomes ordenados (aparecendo
> > uma unica vez), os sobrenomes relativos aos nomes, e a quantidade de
> > vezes que esse nome apareceu. Tb, nao entendi muito bem o exemplo do
> > flavio. O q este map faz? Enfim... Tah ae a rotina que eu escrevi, com a
> > ajuda d vcs:
> >
> > #!/bin/perl
> > open (NOMES,"nomes.txt");
> > open (OUTPUT,">output.txt);
> >
> > #rotina do flavio, q nao consegui rodar e nao entendi muito bem
> > #while (<NOMES>)
> > #{
> > # chomp;
> > # $h{$_}++};
> > # print map { "$_ $h{$_}\n" } sort key %h;
> >
> > while (<NOMES>)
> > {
> > chomp;
> > $count{$_}++;
> > }
> > @keys=sort {
> > $_{$a} cmp $_{$b}
> > } keys %count;
> > foreach (@keys) {
> > print OUTPUT "$_\t$count{$_}\n";
> > }
> > close OUTPUT;
> > close NOMES;
> >
> > Bem... Resumindo...
> >
> > Tenho o arquivo:
> >
> > Zeh Silva
> > Scheila Carvalho
> > Zeh Tripeh
> > Claudia Shiffer
> > Zeh Maneh
> >
> > E quero como saida:
> >
> > Claudia Shiffer 1
> > Scheila Carvalho 1
> > Zeh Maneh, Silva, Tripeh 3
>
> Sem map, desta vez:
>
> while (<>)
> {
> ($nome,$sobrenome) = chomp && split;
> $h{$nome}{$sobrenome}++
> };
>
> for $nome ( sort keys %h ) {
> print "$nome ",
> join(',', keys %{$h{$nome}}) ," ",
> 0 + keys %{$h{$nome}}, "\n";
> }
>
> # saída:
> Claudia Shiffer 1
> Scheila Carvalho 1
> Zeh Tripeh,Silva,Maneh 3
>
> - Flavio S. Glock
> _______________________________________________
> 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 v4296 created Oct 01 2003
Mais detalhes sobre a lista de discussão Cascavel-pm