[SP-pm] variavel com nome de variáveis... seria isso?

Wendel Scardua wendelscardua em gmail.com
Quarta Abril 16 01:47:09 PDT 2008


Primeiro: Posso lembrar que $elemento[$i, $j] não faz o que pode parecer que
faz ?

Você quis dizer $elemento[$i][$j].   $elemento[$i, $j] equivale a $elemento[
$j ]. (o operador vírgula "calcula" os dois operandos, e devolve o segundo
operando)

Segundo: Você tem certeza que esse seu código faz o que você quer, ou que
você quer o que esse código faz ? Ele é, como posso dizer, "realista" ?
Porque se você tem mesmo 452 for()'s encadeados, e $final == 2, aquele bando
de atribuições vai ser executado 2^452 vezes, o que eu chuto levar mais de
um googol (10^100) de anos pra rodar :-)

Terceiro: Supondo que você só exagerou mesmo no número, e esse 452 é na
verdade só um 32 ou algo assim, ainda assim você poderia fazer o que o Eden
sugeriu, use $d[1] ... $d[32] em vez de $d1 ... $d32  . Daí seu $d$count é
simplesmente $d[$count].

[]s
Wendel

2008/4/15 Eden Cardim <edencardim em gmail.com>:

> 2008/4/15 henry <juhenrimas em yahoo.com.br>:
> > Olá!!!
> >  estou quebrando a cabeça aqui em um probleminha...
> >
> >  tenho varias variaveis(dezenas) dentro de varios "foreachs"
> >  encadeados(centenas).
> >
> >  mas  tenho que atribuir  centenas de valores para uma matriz, e queria
> ver se
> >  eu conseguiria   fazer isso de maneira mais elegante.
> >
> >  um trecho do  código:
> >
> >  foreach $d1 ( 1 .. $final )
> >  {
> >  foreach $d2 ( 1 .. $final )
> >  {
> >
> >  (...)
> >  foreach $d450 ( 1 .. $final )
> >  {
> >  foreach $d451 ( 1 .. $final )
> >  {
> >  foreach $d452 ( 1 .. $final )
> >  {
> >
> >  (...)
> >
> >  $elemento[1,1]=$d1;
> >  $elemento[1,2]=$d2;
> >  $elemento[1,3]=$d3;
> >  (...)
> >  $elemento[1,8]=$d8;
> >  $elemento[1,9]=$d9;
> >  $elemento[2,2]=$d10;
> >  $elemento[2,3]=$d11;
> >  (...)
> >  $elemento[2,9]=$d17;
> >  $elemento[3,3]=$d18;
> >  $elemento[3,4]=$d19;
> >  (...)
> >  $elemento[3,9]=$d24;
> >  $elemento[4,4]=$d25;
> >  (...)
> >  elemento[x,z]=$d452;
> >
> >  }
> >  (...)
> >  }
> >  }
> >  }
> >
> >  Nao eh   mto produtivo e  nem elegante escrever na  unha tudo isso.
> >  Então, estou tentando agrupar $elemento[i,j] dentro de um laço.
> >  Mas não estou conseguindo atribuir o valor de  $d_n_  via  variavel.
> >  o  laço  de  @elemento eu  fiz assim:
> >
> >  (...)
> >  foreach $d452 ( 1 .. $final )
> >  {
> >
> >  my $count=0;
> >  foreach $i (1 .. $finale)
> >  {
> >  foreach $j ( $i .. $finale)
> >  {
> >  $count++;
> >  $elemento[$i,$j]=$d$count;
> >  }
> >  }
> >
> >
> >  porém  estou  justamente com o  problema do  "$d$count",  não estou
> >  conseguindo imaginar  uma maneira de fazer  $d$count se comportar como
> uma
> >  variável "variável".
>
> Você quer referências simbólicas, não vou mostrar como fazer porque é
> uma péssima idéia. :) Porque você não usa um array $d[$count] invés
> disso?
>
> --
> edenc.vox.com
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080416/8b77cb19/attachment-0001.html 


Mais detalhes sobre a lista de discussão SaoPaulo-pm