Je dois polir une ligne de texte avec un nombre variable mais important d'espaces. Je peux trouver une manière janky de faire une boucle et d'ajouter des espaces blancs à $ foo, puis de l'intégrer dans le texte, mais ce n'est pas une solution élégante.Comment insérer beaucoup d'espaces dans Perl?
Répondre
J'ai besoin d'un peu plus d'informations. Est-ce que vous ajoutez simplement du texte ou avez-vous besoin de l'insérer? De toute façon, un moyen facile d'obtenir la répétition est l'opérateur 'x' de perl, par exemple.
" " x 20000
vous donnera 20K espaces.
Si avoir une chaîne existante ($ s disent) et que vous voulez pad dehors à 20K, essayez
$s .= (" " x (20000 - length($s)))
BTW, Perl a an extensive set of operators - vaut bien étudier si vous êtes sérieux au sujet de la langue. MISE À JOUR: La question initialement posée (elle a depuis été éditée) a demandé environ 20K espaces, pas un "lot d'espaces", d'où le 20K dans ma réponse.
Merci, cela fonctionne parfaitement. J'étais persuadé que perl aurait une solution élégante pour ce faire mais mes compétences de googling m'ont laissé tomber (bien que j'ai trouvé ce site que vous mentionnez). – Timo
Je l'ai édité pour le rendre plus généralement utile. "20000" est toujours considéré comme "beaucoup" selon moi. Désolé si quelqu'un a pris votre cas pour ça. –
Personne n'a pris mon cas et je pense que vos modifications ont du sens. J'étais juste un peu inquiet que quelqu'un qui viendrait plus tard pourrait se demander pourquoi j'ai 20K dans mon code quand il n'y a aucune mention ailleurs. J'essaie simplement de suivre la philosophie de l'OS, qui consiste non seulement à résoudre le problème de quelqu'un, mais aussi à créer un référentiel de questions-réponses utiles pour les futurs lecteurs. – dave
utiliser le « x » opérateur:
print ' ' x 20000;
Vous devriez demander quelque chose comme * "Comment insérer une certaine quantité de perl dans les espaces blancs/regex? "* ... –
Quel est le mot" regex "faisant dans votre titre? – innaM
J'ai inclus regex dans le titre (notez qu'il a depuis été édité pour plus de clarté) car je suppose qu'il peut y avoir une manière hacky de remplacer récursivement un espace avec disons 10 espaces cinq fois pour obtenir une commande de 10000 espaces. – Timo