6
votes

Comment utiliser Sprintf à zéro remplir à une longueur variable dans Perl?

Je veux utiliser Perl's sprintf à zerofill une variable.

sprintf("%08d", $var);


0 commentaires

3 Réponses :


15
votes

Le premier argument à Sprintf est juste une chaîne:

 my $zerofill = 9;
 my $number = 1000;
 my $filled = sprintf "%0${zerofill}d", $number;


0 commentaires

15
votes

sprintf et printf prend en charge la notation * (ceci a fonctionné depuis au moins 5,8):


xxx
xxx

0 commentaires

2
votes

Je devais faire quelque chose de légèrement différent: zéro tampon une valeur de point flottante et obtenez une longueur exacte.

Dans mon cas, j'ai besoin exactement de 12 octets, y compris le point décimal. Il est légèrement plus difficile que ce que vous avez ci-dessus. Ici, c'est au cas où quelqu'un en a besoin:

Say $ INPUTVAL est une chaîne passée de quelque part avec une valeur comme 1001.1 . Notez qu'il devrait comporter moins de 12 caractères pour que cela fonctionne de manière fiable xxx


0 commentaires