67 votes

Comment puis-je répéter une chaîne en Perl?

En Python, si je fais ceci:

 print "4" * 4
 

Je reçois

 > "4444"
 

En Perl, j'aurais

 > 16
 

Y at-il un moyen facile de faire le premier en Perl?

111voto

Vinko Vrsalovic Points 116138
$ perl -e 'print "4"x4; print "\n"'
4444

L'opérateur x est documenté dans perldoc perlop. Ici binaire désigne un opérateur prenant deux arguments, pas composé de bits, par la manière.

Binaire "x" est la répétition de l'opérateur. Dans un contexte scalaire, ou si le opérande de gauche n'est pas entre parenthèses, il retourne une chaîne constituée de l'opérande de gauche répété le nombre de fois spécifié par le droit l'opérande. Dans un contexte de liste, si l'opérande de gauche est indiqué entre parenthèses ou une liste formée par "qw/STRING/", il répète la liste. Si le droit l'opérande est nul ou négatif, il renvoie une chaîne vide ou vide liste, en fonction du contexte.

       print '-' x 80;             # print row of dashes

       print "\t" x ($tab/8), ' ' x ($tab%8);      # tab over

       @ones = (1) x 80;           # a list of 80 1's
       @ones = (5) x @ones;        # set all elements to 5

perl -e est destinée à exécuter du code perl en ligne de commande:

$ perl --help
Usage: perl [paramètres] [--] [programfile] [arguments]

 -e une ligne de programme de programme (plusieurs -e qui est autorisé, omettre programfile)

45voto

bart Points 3543

En Perl, vous souhaitez utiliser l'opérateur "x".

Notez la différence entre

 "4" x 4
 

et

 ("4") x 4
 

Le premier produit une chaîne répétée:

 "4444"
 

ce dernier une liste répétée:

 ("4", "4", "4", "4")
 

17voto

Paul Points 18124

C'est très similaire en Perl

imprimer "4" x 4;

12voto

Aristotle Pagaltzis Points 43253

FWIW, c'est aussi l' print 4 x 4 en Perl.

En général, en Perl, les opérateurs sont monomorphes, c'est à dire. vous avez différents ensembles d'opérateurs de la chaîne de la sémantique, de numérique, de la sémantique, de bit-à-bit de la sémantique, etc., où il fait sens, et le type des opérandes en grande partie n'a pas d'importance. Lorsque vous appliquez un opérateur numérique à une chaîne, la chaîne est convertie en un nombre premier et vous obtenez l'opération que vous avez demandé (par exemple. la multiplication), et lorsque vous appliquez un opérateur chaîne pour un certain nombre, il est transformé en une chaîne de caractères et vous obtenez l'opération que vous avez demandé (par exemple. la répétition). Perl accorde de l'attention à l'opérateur d'abord et les types des opérandes seule seconde si, en effet, il paie tout l'esprit à tous.

C'est le contraire de Python et la plupart des autres langues, où vous utilisez un ensemble d'opérateurs, et les types des opérandes déterminer la sémantique que vous aurez réellement obtenir – ie. les opérateurs sont polymorphes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X