<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Pessoal, no livro que estou lendo, mais especificamente no capítulo que
trata de Hashes, tem um exercício proposto em que o autor pede para
elaborar um programa em que o usuário digita palavras (nomes, por
exemplo) e o sistema tem que contar quantas vezes foram digitados as
mesmas palavras.<br>
<br>
Abaixo segue a solução apresentada pelo autor:<br>
<br>
1 my(@words, %count, $word); <br>
2 chomp(@words = <STDIN>);<br>
3 foreach $word (@words) {<br>
4 $count{$word} += 1; <br>
5 }<br>
6 foreach $word (keys %count) { <br>
7 print "$word was seen $count{$word} times.\n";<br>
8 }<br>
<br>
<br>
Nas linhas de 3 a 5 é "armazenado" o número de vezes que uma palavra
aparece, ou seja, é feita uma contagem, certo?<br>
<br>
Agora é aqui que não entendi direito (nas linhas de 6 a
8)....especificamente no trecho <b>(keys %count)</b> O que fiquei em
dúvida se é aqui que é "montado" o Hash, ou seja, os valores são
"captados" nas linhas de 3 a 5 e depois "transportados" ou
"armazenados" no Hash <b>%count</b> da linha 6 ??, pois os valores
digitados pelo usuário são armazenados no Array @words, contados nas
linhas de 3 a 6 e "armazenados" no hash <b>%count</b> ???<br>
<br>
Não sei se fui claro, mas como é o raciocínio disto?...Vcs poderia me
ajudar a ler e entender este código?<br>
<br>
abraço,<br>
Flávio<br>
</body>
</html>