Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Perl - Les opérateurs

Les opérateurs avec Perl Encyclopédie


Qu'est-ce qu'un opérateur?

Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ...
On distingue plusieurs types d'opérateurs :

  • les opérateurs de calcul
  • les opérateurs d'assignation
  • les opérateurs d'incrémentation
  • les opérateurs de comparaison de scalaires
  • les opérateurs de comparaison de chaînes
  • les opérateurs logiques
  • (les opérateurs bit-à-bit)
  • (les opérateurs de rotation de bit)

Les opérateurs de calcul

Les opérateurs de calcul permettent de modifier mathématiquement la valeur d'une variable

Opérateur Dénomination Effet Exemple Résultat (avec $x valant 7)
+ opérateur d'addition Ajoute deux valeurs $x+3 10
- opérateur de soustraction Soustrait deux valeurs $x-3 4
* opérateur de multiplication Multiplie deux valeurs $x*3 21
/ plus: opérateur de division Divise deux valeurs $x/3 2.3333333
= opérateur d'affectation Affecte une valeur à une variable $x=3 Met la valeur 3 dans la variable $x

Les opérateurs d'assignation

Ces opérateurs permettent de simplifier des opérations telles que ajouter une valeur dans une variable et stocker le résultat dans la variable. Une telle opérations s'écrirait habituellement de la façon suivante par exemple: $x=$x+2
Avec les opérateurs d'assignation il est possible d'écrire cette opération sous la forme suivante: $x+=2
Ainsi, si la valeur de $x était 7 avant opération, elle sera de 9 après...

Les autres opérateurs du même type sont les suivants :

Opérateur Effet
+=addition deux valeurs et stocke le résultat dans la variable (à gauche)
-=soustrait deux valeurs et stocke le résultat dans la variable
*=multiplie deux valeurs et stocke le résultat dans la variable
/=divise deux valeurs et stocke le résultat dans la variable

Les opérateurs d'incrémentation

Ce type d'opérateur permet de facilement augmenter ou diminuer d'une unité une variable. Ces opérateurs sont très utiles pour des structures telles que des boucles, qui ont besoin d'un compteur (variable qui augmente de un en un).

Un opérateur de type $x++ permet de remplacer des notations lourdes telles que $x=$x+1 ou bien $x+=1

Opérateur Dénomination Effet Syntaxe Résultat (avec x valant 7)
++ Incrémentation Augmente d'une unité la variable $x++ 8
-- Décrémentation Diminue d'une unité la variable $x-- 6

Les opérateurs de comparaison

Opérateur Dénomination Effet Exemple Résultat
==
A ne pas confondre avec le signe d'affectation (=)!!
opérateur d'égalité Compare deux valeurs et vérifie leur égalité $x==3 Retourne 1 si $x est égal à 3, sinon 0
< opérateur d'infériorité stricte Vérifie qu'une variable est strictement inférieure à une valeur $x<3 Retourne 1 si $x est inférieur à 3, sinon 0
<= opérateur d'infériorité Vérifie qu'une variable est inférieure ou égale à une valeur $x<=3 Retourne 1 si $x est inférieur à 3, sinon 0
> opérateur de supériorité stricte Vérifie qu'une variable est strictement supérieure à une valeur $x>3 Retourne 1 si $x est supérieur à 3, sinon 0
>= opérateur de supériorité Vérifie qu'une variable est supérieure ou égale à une valeur $x>=3 Retourne 1 si $x est supérieur ou égal à 3, sinon 0
!= opérateur de différence Vérifie qu'une variable est différente d'une valeur $x!=3 Retourne 1 si $x est différent de 3, sinon 0

Les opérateurs de comparaison de chaînes

Etant donné que Perl est un langage spécialisé dans la manipulation de chaînes de caractères, il est normal qu'il possède des opérateurs dédiés à ce type de données
Opérateur Dénomination Effet Exemple Résultat
. opérateur de concaténation Met deux chaînes bout à bout $x." chaine" Ajoute la chaîne " chaine" à $x
eq opérateur d'égalité Compare deux chaînes et vérifie que leur contenu est le même $x eq "Bonjour" Retourne 1 si $x contient la chaîne "Bonjour", sinon 0
lt opérateur d'infériorité stricte Vérifie qu'une chaîne est strictement inférieure à une autre, c'est-à-dire qu'elle est située avant dans l'ordre alphabétique $x lt "Toto" Retourne 1 si $x est inférieure à "Toto", sinon 0
le opérateur d'infériorité Vérifie qu'une chaîne est inférieure ou égale à une autre, c'est-à-dire qu'elle est située avant dans l'ordre alphabétique $x le "Toto" Retourne 1 si $x est inférieure ou égale à "Toto", sinon 0
gt opérateur de supériorité stricte Vérifie qu'une chaîne est strictement supérieure à une autre, c'est-à-dire qu'elle est située après dans l'ordre alphabétique $x gt "Toto" Retourne 1 si $x est supérieure à "Toto", sinon 0
ge opérateur de supériorité Vérifie qu'une chaîne est supérieure ou égale à une autre, c'est-à-dire qu'elle est située après dans l'ordre alphabétique $x ge "Toto" Retourne 1 si $x est supérieure ou égale à "Toto", sinon 0
ne opérateur de différence Vérifie qu'une chaîne est différente d'une autre $x ne "Toto" Retourne 1 si $x est différente de "Toto", sinon 0

Les opérateurs logiques (booléens)

Ce type d'opérateur permet de vérifier si plusieurs conditions sont vraies :

Opérateur Dénomination Effet Syntaxe
||OU logique Vérifie qu'une des conditions est réalisée ((condition1)||(condition2))
&& ET logique Vérifie que toutes les conditions sont réalisées ((condition1)&&(condition2))
! NON logique Inverse l'état d'une variable booléenne (retourne la valeur 1 si la variable vaut 0, 0 si elle vaut 1) (!condition)

(Les opérateurs bit-à-bit)

Si vous ne comprenez pas ces opérateurs cela n'est pas important, vous n'en aurez probablement pas l'utilité. Pour ceux qui voudraient comprendre, rendez- vous aux chapitres suivants :

Ce type d'opérateur traite ses opérandes comme des données binaires, plutôt que des données décimales, hexadécimales ou octales. Ces opérateurs traitent ces données selon leur représentation binaire mais retournent des valeurs numériques standards dans leur format d'origine.

Les opérateurs suivants effectuent des opérations bit-à-bit, c'est-à-dire avec des bits de même poids.

Opérateur Dénomination Effet Syntaxe Résultat
& ET bit-à-bit Retourne 1 si les deux bits de même poids sont à 1 9 & 12 (1001 & 1100) 8 (1000)
| OU bit-à-bit Retourne 1 si l'un ou l'autre des deux bits de même poids est à 1 (ou les deux) 9 | 12 (1001 | 1100) 13 (1101)
^ OU exclusif bit-à-bit Retourne 1 si l'un des deux bits de même poids est à 1 (mais pas les deux) 9 ^ 12 (1001 ^ 1100) 5 (0101)

(Les opérateurs de rotation de bit)

Si vous ne comprenez pas ces opérateurs cela n'est pas important, vous n'en aurez probablement pas l'utilité. Pour ceux qui voudraient comprendre, rendez- vous aux chapitres suivants :

Ce type d'opérateur traite ses opérandes comme des données binaires d'une longueur de 32 bits, plutôt que des données décimales, hexadécimales ou octales. Ces opérateurs traitent ces données selon leur représentation binaire mais retournent des valeurs numériques standards dans leur format d'origine.

Les opérateurs suivants effectuent des rotation sur les bits, c'est-à-dire qu'il décale chacun des bits d'un nombre de bits vers la gauche ou vers la droite. La première opérande désigne la donnée sur laquelle on va faire le décalage, la seconde désigne le nombre de bits duquel elle va être décalée.

Opérateur Dénomination Effet Syntaxe Résultat
<< Rotation à gauche Décale les bits vers la gauche (multiplie par 2 à chaque décalage). Les zéros qui sortent à gauche sont perdus, tandis que des zéros sont insérés à droite 6 << 1 (110 << 1) 12 (1100)
>> Rotation à droite avec conservation du signe Décale les bits vers la droite (divise par 2 à chaque décalage). Les zéros qui sortent à droite sont perdus, tandis que le bit non-nul de poids plus fort est recopié à gauche 6 >> 1 (0110 >> 1) 3 (0011)
>>> Rotation à droite avec remplissage de zéros Décale les bits vers la droite (divise par 2 à chaque décalage). Les zéros qui sortent à droite sont perdus, tandis que des zéros sont insérés à gauche 6 >>> 1 (0110 >>> 1) 3 (0011)

Les priorités

Lorsque l'on associe plusieurs opérateurs, il faut que le compilateur sache dans quel ordre les traiter, voici donc dans l'ordre décroissant les priorités de tous les opérateurs :

Priorité des opérateurs
++++++++++++ () []                    
+++++++++++ -- ++ ! ~ -              
++++++++++ * / %                  
+++++++++ + -                    
++++++++ < <= >= >                
+++++++ == !=                    
++++++ ^                      
+++++ |                      
++++ && ||                    
+++ ? :                    
++ = += -= *= /= %= <<= >>= >>>= &= ^= |=
+ ,                      

Discussions pertinentes trouvées dans le forum

13/01 12h17 komen tableau fichier perl Komen faire un tableau d'un fichier en Perl? Développement 26/01 22h51->karinn22
06/05 14h45 perl lire contenu fichier .xls [PERL] lire contenu fichier .xls Développement 25/05 10h23->kij_8221
27/11 20h29 extraire contenu fichier perl extraire le contenu d'un fichier avec perl Développement 28/11 14h14->lami20j20
13/04 12h16 perl access db pERL -> access DB Développement 26/04 09h36->kij_8212
10/11 14h31 perl saut ligne [PERL]Saut de ligne Développement 19/02 22h58->lami20j12
18/11 21h03 perl fonction grep [PERL]pb avec la fonction grep Développement 19/11 21h12->Johann11
05/05 13h55 installer module perl tk installer le module perl/TK Linux/Unix 06/05 13h44->hakim9
11/02 17h45 perl unitialized value open ha [Perl] "Unitialized value" avec Open (HA Développement 11/02 21h14->lami20j9
22/05 15h15 perl afficher endroit page [PERL]-Afficher au même endroit sur la page Linux/Unix 23/05 15h48->lami20j9
10/11 10h18 perl récupération chaîne caractère [PERL]Récupération chaîne caractère... Développement 28/02 07h22->lami20j8
Discussion fermée Problème résolu Perl Plus de discussions sur « Perl »

Ce document intitulé « Perl - Les opérateurs » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.