Ir para conteúdo
Fórum Script Brasil

Christiane Okamoto

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Christiane Okamoto

Christiane Okamoto's Achievements

0

Reputação

  1. Olá! Sou iniciante em Perl e estou com um problema. Dado dois arquivos txt contendo os seguintes textos, por exemplo: ARQ1: ar ar ARQ2: ar ar ar ar bola Gostaria de contar a ocorrência de palavras de cada arquivo: ARQ1: ar = 2 ARQ2: ar = 4 bola = 1 Escrevi este código: #!/usr/bin/perl my $dirname = $ARGV[0]; opendir(DIR, $dirname) or die "can't opendir $dirname: $!"; my %count_of; while (defined($filename = readdir(DIR))) { open (FILE, $dirname . $filename); while (<FILE>) { chomp; $_ = lc $_; #lc = lowercase $_ =~ s/\d+/ /g; # remove all numbers $_ =~ s/[^a-zA-Z0-9'áéíóúàãõâêôçü]+/ /g; foreach my $word ( split /\s+/, $_){ $count_of{$word}++; } } #print "All words and their counts: \n"; foreach my $word (sort {$count_of{$b} <=> $count_of{$a} } keys %count_of) { print "$word : $count_of{$word}\n"; } close (FILE); } closedir(DIR); Porém, ele me retorna: ar = 2 ar = 6 // aqui começa a leitura do segundo arquivo, o certo seria ar = 4. bola = 1 Acho que o problema está no vetor word, que até então não está sendo reinicializado quando se abre um novo arquivo... mas não consegui reinicializá-lo... alguma sugestão?
×
×
  • Criar Novo...