Programmation Perl/Opérateurs

Un livre de Wikilivres.
Programmation Perl
Programmation Perl
Programmation Perl
Sommaire




Modifier ce modèle


Opérateurs numériques[modifier | modifier le wikicode]

Perl reprend tous les opérateurs classiques (+, -, *, /, %, sin, cos) et les étend. Il y a des raccourcis utiles à connaître pour l'affectation, comme ++, --, +=, -=, *=, %= Il existe également l'opérateur exponentiel **.

exemples[modifier | modifier le wikicode]

my $a = 1 ;
$a--;                   # $a vaut 0 ; est équivalent à "$a = $a - 1;"
$a = $a + 2;    # $a vaut 2 ; est équivalent à "$a += 2;"
$a *= 2;                # $a vaut 4 ; est équivalent à "$a = $a * 2;"
$a -= 10;               # $a vaut -6 ; est équivalent à "$a = $a - 10;"
$a++;                   # $a vaut -5 ; etc.

Il faut être attentif aux opérations avec ++ et -- . $b = $a++ affecte à $b la valeur de $a **avant** son incrémentation. $b = ++$a affecte à $b la valeur de $a **après** son incrémentation.

Opérateurs de chaînes[modifier | modifier le wikicode]

Les opérateurs les plus basiques qui travaillent sur des chaînes sont :

  • . : concaténation
  • length : connaître la taille d'une chaîne
  • chop : retire le dernier caractère d'une chaîne
  • chomp : comme chop mais seulement si le dernier caractère est un retour à la ligne
  • split : permet de couper une chaîne suivant un motif
  • join : regroupe les éléments d'une liste, avec une chaîne entre tous les éléments
  • reverse : inverse les éléments d'une liste (le premier devient le dernier et inversement)
  • substr : prend une partie de la chaîne
  • index : cherche l'indice de la première occurrence d'une chaîne dans une autre
  • rindex : inverse de la fonction index, cherche la dernière occurrence

exemples[modifier | modifier le wikicode]

my $str = "coucoux";
say length( $str ), " ", index( $str, "uc" ); # affiche "7 2"
chop $str;      # supprime la lettre 'x'
say $str;       # affichera "coucou"
my @tableau_de_caracteres = split("", $str); # contient la liste des lettres restantes
say join(" | ", @tableau_de_caracteres);         # affiche  c | o | u | c | o | u

explications[modifier | modifier le wikicode]

say length( $str ), " ", index( $str, "uc" );

Ici, nous appellons la fonction say pour qu'elle affiche la taille de la chaîne de caractères $str (7), un espace (" ") et l'index de la première occurrence de "uc" (2). Nous verrons plus tard comment se passent les passages de paramètres et retours de fonctions.

my @tableau_de_caracteres = split("", $str);

La fonction split permet de séparer une chaîne de caractères suivant un motif, ici la chaîne vide : "". Ceci a pour conséquence de séparer toutes les lettres.

say join(" | ", @tableau_de_caracteres);

Nous affichons le retour de la fonction join qui renvoie tous les éléments de @tableau_de_caracteres séparés par la chaîne " | ". Elle affiche donc "c | o | u | c | o | u".