[Cascavel-pm] Formatando com Sprintf

Nelson Ferraz nferraz em gmail.com
Quarta Agosto 29 13:33:27 PDT 2007


> Pessoal... estou usando o sprintf para formatar a saida no meu arquivo,
> Tenho um array e apartir dele quero imprimir os dados formatados..
> estou fazendo:
>
> for ($i=0;$i<@valores;$i++)
> {
>
>  print OUT sprintf('%9.2f',$valores[$i]);
> }

Por que você usa o "for" como se estivesse programando em C? Que tal:

foreach ( @valores ) {
    print OUT sprintf('%9.2f', $_);
}

Isso é bem melhor do que ficar controlando os índices do array. (Você
pode usar uma variável nomeada ao invés de $_, se quiser).

> tentei fazer direto no @array.. nao consegui...

Você pode transformar um array em outro usando map:

    my @formated = map { sprintf('%9.2f', $_) } @valores;

Mas acho um desperdício usar um array auxiliar quando você pode
simplesmente usar um loop -- como já fez no exemplo inicial.

[]s

Nelson


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