Comment puis-je utiliser sprintf à zéro de remplissage d'une longueur variable en Perl?
Je veux utiliser Perl sprintf à zerofill ne une variable.
sprintf("%08d", $var);
Mais je veux dynamiquement déterminer le nombre de chiffres à zerofill ne.
Comment puis-je remplacer le "8" dans sprintf("%08d", $var)
avec une variable appelée $zerofill
?
OriginalL'auteur Michael Shnitzer | 2010-03-18
Vous devez vous connecter pour publier un commentaire.
Le premier argument de sprintf est juste une chaîne de caractères:
Avis les accolades afin de mettre à part le nom de la variable du reste de la chaîne.
Nous avons ce problème particulier comme un peu habile dans l'exercice L'Apprentissage De Perl pour rappeler aux gens que les chaînes de caractères sont simplement des chaînes de caractères. 🙂
Cependant, comme mobrule le souligne dans sa réponse, sprintf possède de nombreuses fonctionnalités pour vous donner ce genre de flexibilité. La documentation pour une apparence simple, la fonction est assez long et il y a beaucoup de goodies.
OriginalL'auteur brian d foy
sprintf
etprintf
l'appui de la*
notation (il a travaillé depuis au moins 5.8):OriginalL'auteur mob
J'avais besoin de faire quelque chose de légèrement différent: zéro pad une valeur à virgule flottante et d'obtenir une longueur exacte.
Dans mon cas, j'ai besoin d'exactement 12 octets, y compris le point décimal. Il est un peu plus compliqué que ce que vous avez ci-dessus. Ici, il est dans le cas où quelqu'un a besoin de ceci:
Dire $inputVal est une chaîne de caractères transmis à partir de quelque part avec une valeur comme 1001.1. Notez qu'il devrait être de moins de 12 caractères pour que cela fonctionne correctement
OriginalL'auteur Tereus Scott