Une variable est un objet repéré par son nom pouvant contenir des données qui pourront être modifiées lors de lexécution du programme. Les variables en langage Perl peuvent être de trois types :
Scalaires.
Tableaux de scalaires (Appelés Tableaux indicés ou Listes).
Tableaux associatifs de scalaires (Appelés Tableaux de hashages ou Hashes).
Contrairement à de nombreux langages de programmation comme le langage C les variables en Perl nont pas besoin dêtre déclarées cestàdire que lon peut commencer à les utiliser sans en avoir averti linterpréteur précédemment ainsi si la variable existait précédemment son contenu est utilisé sinon linterpréteur lui affectera la valeur en lui assignant 0 par défaut. De cette façon si vous ajoutez 3 à une nouvelle variable (Non définie plus haut dans le code) sa valeur sera 3...
Avec Perl les noms de variables doivent répondre à certains critères :
Un nom de variable doit commencer par une lettre (Majuscule ou minuscule) précédée dun $ un @ ou un %.
Un nom de variable peut comporter des lettres des chiffres et le caractère _ (Les espaces ne sont pas autorisés !).
Nom de variable correct | Nom de variable incorrect | Raison |
$Variable | $Nom de Variable | Comporte des espaces |
$Nom_De_Variable | $123Nom_De_Variable | Commence par un chiffre |
$nom_de_variable | $toto@mailcity.com | Comporte un caractère spécial (@) |
$nom_de_variable_123 | $Nomdevariable | Comporte un signe interdit () |
Les noms de variables sont sensibles à la casse (Le langage Perl fait la différence entre un nom en majuscule et un nom en minuscule) il faut donc veiller à utiliser des noms comportant la même casse !
Le langage Perl propose cinq types de variables scalaires :
Entiers : Nombres naturels sans décimale (Sans virgule).
Hexadécimaux : Nombres naturels sans décimale (Sans virgule) en notation hexadécimale.
Octaux : Nombres naturels sans décimale (Sans virgule) en notation octale.
Réels : Nombres décimaux (On parle généralement de type double car il sagit de nombres décimaux à double
précision).
Chaînes de caractères : Ensembles de caractères.
Il nest pas nécessaire en Perl de typer les variables cestàdire de définir leur type il suffit de leur assigner une valeur pour en définir le type :
Entiers : Nombres sans virgule.
Hexadécimaux : Nombres hexadécimaux (Unités de 0 à F) sans virgule commençant par "0x".
Octaux : Nombres sans virgule commençant par "0".
Réels : Nombres avec une virgule (En réalité un point) ou en notation scientifique.
Chaînes de caractères : Ensembles de caractères entre guillemets simples ou doubles.
Instruction | Type de la variable |
$Variable = 0; | Type entier |
$Variable = 12; | Type entier |
$Variable = 0.0; | Type réel |
$Variable = 12.0; | Type réel |
$Variable = 012; | Type octal |
$Variable = 0x6A; | Type hexadécimal |
$Variable = "0.0"; | Type chaîne |
$Variable = "Bonjour tout le monde"; | Type chaîne |
Les chaînes de caractères sont le type de données "préféré" de Perl entendez par là que Perl est fait pour manipuler des chaînes de caractères. Cest pourquoi Perl permet de spécifier la valeur dune chaîne de caractères de deux façons :
Lorsque la chaîne est délimitée par des simples quotes (Le caractère ) il ny a pas dinterprétation des caractères contenus dans la chaîne. La seule restriction étant de faire précéder une simple quote dun antislash (Pour des raisons évidentes dambiguité dans la délimitation de la chaîne).
Lorsque la chaîne est délimitée par des doubles quotes (Le caractère ") certains caractères contenus dans la chaîne seront interprétés ainsi que les variables (Noms commençant par le caractère $).
Les caractères interprétés sont représentés grâce au caractère "\" suivi dune lettre qui précise quil sagit dun caractère de contrôle. Voici la liste de certains caractères de contrôle :
Caractère | Description |
\" | Double quote |
\\ | Barre oblique inverse (Antislash) |
\n | Retour à la ligne |
\t | Tabulation |
\012 | Caractère codé en octal |
\0x1A | Caractère codé en hexadécimal |
\cC | Caractère de contrôle (CTRLC ici) |
\$ | Caractère $ |
Les variables telles que nous les avons vues ne permettent de stocker quune seule donnée à la fois. Or pour de nombreuses données comme cela est souvent le cas des variables distinctes seraient beaucoup trop lourdes à gérer. Heureusement Perl propose des structures de données permettant de stocker lensemble de ces données dans une "variable commune". Ainsi pour accéder à ces valeurs il suffit de parcourir la variable de type complexe composée de "variables" de type simple.
Les tableaux stockent des données sous forme de liste ordonnée. Les données contenues dans la liste sont accessibles grâce à un index (Un numéro représentant lélément de la liste). Contrairement à des langages tels que le langage C il est possible de stocker des éléments de types différents dans un même tableau.
Avec Perl une variable tableau commence par le caractère @ toutefois lorsque lon accède à un élément (Lorsque le nom du tableau est suivi de crochets) celuici est considéré comme une variable et doit donc commencer par le caractère $.
Ainsi pour désigner un élément de tableau il suffit de faire suivre au nom du tableau lindice de lélément entre crochets :
Le nom dune variable tableau commence par le caractère @ toutefois lorsque lon accède à un élément celuici est considéré comme une variable et doit donc commencer par le caractère $.
Les indices de tableau commencent à zéro.
Tous les types de variables peuvent être contenus dans un tableau.
Lindex du dernier élément dun tableau est accessible par la variable $# suivie du nom du tableau (Sans espace). Ainsi pour accéder au dernier élément il faut écrire Nom_Du_Tableau[$#Nom_Du_Tableau].
Perl permet lutilisation de chaînes de caractères au lieu de simples entiers pour définir les indices dun tableau on parle alors de tableaux associatifs (Parfois hashages ou hashes). Cette façon de nommer les indices peut parfois être plus agréable à utiliser :
Les variables de ce type ont un nom commençant par le caractère % toutefois lorsque lon accède à un élément celuici est considéré comme une variable et doit donc commencer par le caractère $.
Il existe une autre façon dinitialiser un hashage cela se fait grâce à la flêche (=›) :
Selon lendroit où on déclare une variable celleci pourra être accessible (Visible) de partout dans le code ou bien que dans une portion confinée de celuici (À lintérieur dune fonction par exemple) on parle de portée (Ou visibilité) dune variable.
Lorsque la portée dune variable se réduit à lintérieur dun bloc dinstructions (Entre des accolades) on parle de variable locale. Lorsque la variable est visible dans lintégralité du code on parle alors de variable globale.
Ce document intitulé « Perl Les variables avec Perl » issu de Comment Ça Marche (http://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.