[Cascavel-pm] Substituindo números com zero a esquerda.

Nelson Ferraz nferraz em gmail.com
Terça Janeiro 15 18:12:44 PST 2008


> Tentei algo tolo como;
>
> $line =~ s/Folha  \d+/Folha  $count/;
>
> Só que não consigo manter os zeros a esquerda.
>
> Pensei em fazer um split e depois imprimir a parte numérica em separado,
>
> printf '%05s', $count;
>
> deu certo, mas gostaria de saber  uma forma mais galante para fazer isso.

Você está no caminho certo.

Agora pode combinar as duas soluções colocando um /e no final da
expressão regular, que significa realizar um "eval" no lado direito da
regexp:

    my $line  = "Folha 1234";
    my $count = 5;

    $line =~ s/Folha \d+/sprintf('Folha %05d', $count)/e;

    print $line;


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