Os hash são gardados usando B-Tree, não é?<br><br><div class="gmail_quote">2010/7/25 Blabos de Blebe <span dir="ltr">&lt;<a href="mailto:blabos@gmail.com">blabos@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Além do mais, hashes e arrays tem representações internas bem<br>
distintas. Um hash é basicamente uma tabela, enquanto um array é uma<br>
lista. O Perl sempre vai saber a diferença.<br>
<br>
O que pode confundir é que a linguagem Perl fornece alguns &#39;syntax<br>
sugars&#39; que abstraem e facilitam o intercâmbio te dados entre hashes e<br>
arrays.<br>
<br>
Embora dê para fazer isso:<br>
<br>
my @array = qw(1 2 3 4);<br>
my %hash = @array;<br>
my @lista = %hash;<br>
<br>
Hashes e arrays são internamente bem diferentes. A cada atribuição,<br>
internamente um objeto diferente é acessado e a conversão adequada é<br>
feita de forma transparente.<br>
<br>
Abraços<br>
<br>
2010/7/25 Eden Cardim &lt;<a href="mailto:edencardim@gmail.com">edencardim@gmail.com</a>&gt;:<br>
<div><div></div><div class="h5">&gt;&gt;&gt;&gt;&gt;&gt; &quot;Thiago&quot; == Thiago Glauco Sanchez &lt;<a href="mailto:thiagoglauco@ticursos.net">thiagoglauco@ticursos.net</a>&gt; writes:<br>
&gt;<br>
&gt;    Thiago&gt; O perl sabe que vc se refere a um hash pelas chaves { } e a um array<br>
&gt;    Thiago&gt; pelos ( ). Os { } indicam que são chves de um hash e ( )<br>
&gt;    Thiago&gt; indicam que são elementos de um array.  Acho que era esta a<br>
&gt;    Thiago&gt; sua pergunta?<br>
&gt;<br>
&gt; Na verdade, os parênteses são apenas para forçar precedência e não tem<br>
&gt; relação alguma com tipos de dados. Perl faz a diferenciação entre<br>
&gt; referências para arrays e hashes pela presença de &#39;{}&#39; ou &#39;[]&#39; como indexador:<br>
&gt;<br>
&gt; @{$array}[1, 2, 3] = qw(foo bar baz);<br>
&gt; @{$hash}{qw(foo bar baz)} = qw(quux moin meep);<br>
&gt;<br>
&gt; O mesmo vale para construção de arrays e hashes anônimos:<br>
&gt;<br>
&gt; my $array = [&#39;foo&#39;, &#39;bar&#39;, &#39;baz&#39;];<br>
&gt; my $hash = {&#39;foo&#39;, &#39;quux&#39;, &#39;bar&#39;, &#39;moin&#39;, &#39;baz&#39;, &#39;meep&#39;}<br>
&gt;<br>
&gt; Listas são construídas pelo operador &#39;,&#39;, que tem precedência menor que<br>
&gt; o operador &#39;=&#39;, então, no caso de:<br>
&gt;<br>
&gt; @foo = (1, 2, 3);<br>
&gt;<br>
&gt; Os parênteses estão sendo usados para forçar a construção da lista antes<br>
&gt; da atribuição. Se fosse:<br>
&gt;<br>
&gt; @foo = 1, 2, 3;<br>
&gt;<br>
&gt; O resultado seria um array contendo o elemento &quot;1&quot; e uma lista contendo<br>
&gt; 1, 2, 3 retornada em contexto void.<br>
&gt; _______________________________________________<br>
&gt; SaoPaulo-pm mailing list<br>
&gt; <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
&gt; <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><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>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Renato Santos<br><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a><br>