[Cascavel-pm] [Golf]: vocabulário_de_re__ferências
Nelson Ferraz
nferraz em phperl.com
Quinta Outubro 2 18:43:43 CDT 2003
> Vocês estão muito rápidos: eu nem tive tempo de
> responder as outras mensagens relacionadas ao assunto.
>
> De qualquer forma, vou fazer uma pequena interrupção
> ao jogo de golf(?) e lançar uma perguntinha polêmica:
> até que ponto vale a pena matar a legibilidade para
> economizar míseros 5 ou 6 caracteres?
Tem razão! Definitivamente, não vale a pena.
Tenha em mente que o "golf" é apenas um exercício para tentar levar a
linguagem ao limite. (Se bem que alguns dos truques que aprendemos
definitivamente podem ser usados na prática...)
> Voltando ao ponto de referências, todas as respostas
> anteriores foram ótimas, obrigado. Mas ainda ficou uma
> dúvida:
>
> foreach (keys(%users)) {
> print OUT "$_: @{ $users{$_} }\n";
> }
>
> Se que quizesse imprimir o counteúdo de cada valor do
> array referenciado dentro de uma tag html, por exemplo
> <strong></strong>, como eu faria?
Neste caso eu faria algo assim:
print "$_: <strong>$_</strong>\n" foreach @users; # já de-referenciado
Em outras palavras, imprima "$_: <strong>$_</strong>\n" para cada um dos
elementos do array. Este loop vai dentro do outro:
foreach (keys(%users)) {
my @users = @{$users{$_}};
print "$_: <strong>$_</strong>\n" foreach @users;
}
Finalmente, para evitar confusões com variáveis implícitas ($_), é
conveniente dar nome à variável do loop externo:
foreach my $user (keys(%users)) {
my @users = @{$users{$user}};
print "$_: <strong>$_</strong>\n" foreach @users;
}
Se você quiser, pode fazer o mesmo em apenas uma linha:
print "$_: " , map("<strong>$_</strong>", @{$users{$_}}), "\n" foreach
keys(%users);
--
[]s
Nelson
________________________________________________________________
Nelson Ferraz
GNU BIS: http://www.gnubis.com.br
PhPerl: http://www.phperl.com
Mais detalhes sobre a lista de discussão Cascavel-pm