<br><br><div class="gmail_quote">2010/4/18 &quot;Flávio R. Lopes&quot; <span dir="ltr">&lt;<a href="mailto:flavio.lopes@links.inf.br">flavio.lopes@links.inf.br</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">




<div 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 = &lt;STDIN&gt;);<br>
3    foreach $word (@words) {<br>
4    $count{$word} += 1;          <br>
5    }<br>
6    foreach $word (keys %count) { <br>
7      print &quot;$word was seen $count{$word} times.\n&quot;;<br>
8    }<br>
<br>
<br>
Nas linhas de 3 a 5 é &quot;armazenado&quot; o número de vezes que uma palavra
aparece, ou seja, é feita uma contagem, certo?<br></div></blockquote><div><br>Isso mesmo! a hash count tem a chave como sendo a(s) palavra(s) que armazena o numero de vezes que ela apareceu.<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div bgcolor="#ffffff" text="#000000">
<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 é &quot;montado&quot; o Hash, ou seja, os valores são
&quot;captados&quot; nas linhas de 3 a 5 e depois &quot;transportados&quot; ou
&quot;armazenados&quot; 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 &quot;armazenados&quot; no hash <b>%count</b> ???<br></div></blockquote><div><br>A hash é construída na linha 4, quando e feita a atribuição. na linha 6 a 8 $word é a chave(palavra) e $count{$word} o numero de vezes que apalavra aparece. Isso quer dizer que depois da linha 2, é feita uma varredura, em @words, criando a hash, depois disse é feita outra varredura, %count, para imprir os resultado.<br>
<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div bgcolor="#ffffff" text="#000000">
<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>
</div>

<br>_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>Atenciosamente,<br>Neilson P. Lima <br>