<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 => 5 ,</div><div> laranhas => 10 ,</div>
<div> melões => 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,'um',2) ), o último valor vem como 'undef' 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 => 5 ,</div>
<div> laranhas => 10 ,</div><div> melões => 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 'arrays' ou 'hashes'. São apenas maneiras diferentes de se referir a listas;</div>
<div><br></div><div>2) Sim, pode. O 'hash' %quantidade é 'montado' 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 "Flávio R. Lopes" <span dir="ltr"><<a href="mailto:flavio.lopes@links.inf.br">flavio.lopes@links.inf.br</a>></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 "Eu comprei $quantidade{$frutas} $frutas"<br>
}<br>
<br>
Minhas dificuldade são:<br>
1)<br>
Como o Perl "sabe" que "@quantidade" refere-se ao hash "%quantidade" ?
<br>
Por exemplo, se houvesse um outro array "<b>@quantidade</b> = qw/ 1 2
/" porque não causa confusão com "<b>@quantidade</b>{ @frutas } =
@unidades" ?<br>
<br>
2)<br>
Na linha: @quantidade{ @frutas } = @unidades; <br>
## Posso entender que é aqui que é "montado" o hash "%quantidade" ? <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>