<div>INTRODUÇÃO:</div><div><br></div><div><br></div>A palavra chave para você entender isso é LISTA. Você pode se referir a LISTAS de várias maneiras:<div><br></div><div>my %lista  = (banana =&gt; 5 ,</div><div>                   laranhas =&gt; 10 ,</div>
<div>                   melões =&gt; 15</div><div>                 );</div><div><br></div><div>ou</div><div><br></div><div>my %lista  = (banana , 5 , laranjas, 10, melões , 15);</div><div><br></div><div><br></div><div>ou</div>
<div><br></div><div>my %lista = qw / banana 5 laranjas 10 melões 15 /;<br><br></div><div><br></div><div>etc...</div><div><br></div><div><br></div><div>São todos LISTAS para Perl, acessíveis em forma de hash ou array( você precisa escolher um ). No entanto, Perl tem a flexibilidade de poder interpretar um array para montar um hash, e vice-versa. Nesse caso em que estamos montando um hash através de um array, o primeiro valor do array é a chave, e o segundo é o valor dessa chave, e assim por diante. Se o último valor estiver faltando( ex: my %lista = (1,&#39;um&#39;,2) ), o último valor vem como &#39;undef&#39; no hash. </div>
<div><br></div><div><br></div><div><div>my @frutas = qw / bananas laranjas melões /;</div><div>my @unidades = qw / 5 10 15 /;</div></div><div><br></div><div>%quantidade{ @frutas } = @unidades;</div><div><br></div><div>É a mesma coisa que:</div>
<div><br></div><div><br></div><div>my %quantidade  = (banana , 5 , laranjas, 10, melões , 15);</div><div><br></div><div><br></div><div>e também é a mesma coisa que:</div><div><br></div><div><br></div><div><div>my %lista  = (banana =&gt; 5 ,</div>
<div>                   laranhas =&gt; 10 ,</div><div>                   melões =&gt; 15</div><div>                 );</div></div><div><br></div><div><br></div><div><br></div><div>capito?</div><div><br></div><div><br></div>
<div><br></div><div><br></div><div>OBS1: No entanto é preciso deixar claro que, no seguinte caso abaixo:</div><div><br></div><div>my %lista = (banana , 5 , laranjas, 10, melões , 15);</div><div><br></div><div>e</div><div>
<br></div><div>my @lista = (banana , 5 , laranjas, 10, melões , 15);</div><div><br></div><div><br></div><div>SERIAM VARIÁVEIS DIFERENTES!!! </div><div><br></div><div><br></div><div> </div><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>
<br></div><div>RESPONDENDO AS PERGUNTAS</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>1) São todos LISTAS para Perl, independentemente se são &#39;arrays&#39; ou &#39;hashes&#39;. São apenas maneiras diferentes de se referir a listas;</div>
<div><br></div><div>2) Sim, pode. O &#39;hash&#39; %quantidade é &#39;montado&#39; a partir de duas LISTAS: @quantidade e @frutas. O interpretador se vira com isso( Veja a introdução ).</div><div><br></div><div><br></div>
<div><br></div><div><br></div><div>Mais detalhes? Leia aqui: <a href="http://perldoc.perl.org/perldata.html#List-value-constructors">http://perldoc.perl.org/perldata.html#List-value-constructors</a> e depois traga suas dúvidas   ;-) .</div>
<meta http-equiv="content-type" content="text/html; charset=utf-8"><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>Cheers!</div><div><br></div><div><br></div><div><br></div><div><br><div class="gmail_quote">
2010/7/24 &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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">






<div bgcolor="#ffffff" text="#000000">
Olá pessoal, tudo bem?<br>
<br>
Seguinte, estou tendo certa dificuldade para entender sobre Hash Slices.<br>
<br>
Vi um exemplo de Hash Slices  no livro que estou lendo e tentei montar
um para tentar entender o funcionamento:<br>
<br>
    my %quantidade;<br>
<br>
    my @frutas = qw / bananas laranjas melões /;<br>
    my @unidades = qw / 5 10 15 /;<br>
    @quantidade{ @frutas } = @unidades;<br>
<br>
    foreach my $frutas ( @frutas ) {<br>
        say &quot;Eu comprei $quantidade{$frutas} $frutas&quot;<br>
    }<br>
<br>
Minhas dificuldade são:<br>
1)<br>
Como o Perl &quot;sabe&quot; que &quot;@quantidade&quot; refere-se ao hash &quot;%quantidade&quot;  ?
<br>
Por exemplo, se houvesse um outro array &quot;<b>@quantidade</b> = qw/ 1 2
/&quot;  porque não causa confusão com &quot;<b>@quantidade</b>{ @frutas } =
@unidades&quot; ?<br>
<br>
2)<br>
Na linha: @quantidade{ @frutas } = @unidades;  <br>
## Posso entender que é aqui que é &quot;montado&quot; o hash &quot;%quantidade&quot;  ? <br>
<br>
Onde:<br>
Para cada chave: <b>@quantidade{ @frutas }</b><br>
É atribuído um valor: <b>@unidades</b><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<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>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br>
(11)82907780<br>
</div>