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

Perl - Les variables

Variables avec Perl Encyclopédie


Concept de variable avec Perl

Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois types :

  • scalaires
  • tableaux
  • tableaux associatifs (appelés hashages ou hashes)
Contrairement à de nombreux langages de programmation, comme le langage C, les variables en Perl n'ont pas besoin d'être déclarées, c'est-à-dire que l'on peut commencer à les utiliser sans en avoir averti l'interpréteur précédemment, ainsi si la variable existait précédemment, son contenu est utilisé, sinon l'interpré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...

Nommage des variables

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 d'un "$", 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 caractère spécial @
$nom_de_variable_123$Nom-de-variable 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 minuscules), il faut donc veiller à utiliser des noms comportant la même casse!

Variables scalaires

La 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 s'agit de nombre décimaux à double précision)
  • chaines de caractères: ensembles de caractères
Il n'est pas nécessaire en Perl de typer les variables, c'est-à-dire de définir leur type, il suffit de leur assigner une valeur pour en définir le type :
  • entiers: nombre sans virgule
  • hexadécimal: nombre hexadécimal (unités de 0 à F) sans virgule commençant par "0x"
  • octal: nombre sans virgule commençant par "0"
  • réels: nombres avec une virgule (en réalité un point) ou en notation scientifique
  • chaines 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

Chaînes de caractères

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. C'est pourquoi Perl permet de spécifier la valeur d'une chaîne de caractères de deux façons :

  • Lorsque la chaîne est délimitées par des simples quotes (le caractère ' ) il n'y a pas d'interprétation des caractères contenus dans la chaîne. La seule restriction étant de faire précéder une simple quote d'un antislash (pour des raisons évidentes d'ambiguité dans la délimitation de la chaîne)
  • Lorsque la chaîne est délimitées 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 d'une lettre, qui précise qu'il s'agit d'un caractère de contrôle. Voici la liste de ces caractères de contrôle :

Caractère Description

Variables tableaux

Les variables, telles que nous les avons vues, ne permettent de stocker qu'une 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 l'ensemble 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 l'on accède à un élément (lorsque le nom du tableau est suivi de crochets), celui-ci 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 l'indice de l'élément entre crochets :

@Tableau = (12,"Bonjour",024);

$Test = $Tableau[1];

$Tableau[0] = "Toto $Tableau[1]";

  • Le nom d'une variable tableau commence par le caractère @, toutefois lorsque l'on accède à un élément, celui-ci 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
  • L'index du dernier élément d'un 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].

Variables tableaux associatifs

Perl permet l'utilisation de chaînes de caractères au lieu de simples entiers pour définir les indices d'un 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 l'on accède à un élément, celui-ci est considéré comme une variable et doit donc commencer par le caractère $.

%Toto = ('Adresse','2, rue de Toto','Nom','It\'s a secret');

$Toto{'Adresse'} = "22 rue des bois fleuris";

$Toto{'Nom'} = "Ah, vous auriez bien aimé

connaître le nom de famille de Toto...";

Il existe une autre façon d'initialiser un hashage, cela se fait grâce à la flêche ("=>") :

%Toto = ('Adresse' => '2, rue de Toto','Nom' => 'It\'s a secret');

$Toto{'Adresse'} = "22 rue des bois fleuris";

$Toto{'Nom'} = "Ah, vous auriez bien aimé

connaître le nom de famille de Toto...";

Portée (visibilité) des variables

Selon l'endroit où on déclare une variable, celle-ci pourra être accessible (visible) de partout dans le code ou bien que dans une portion confinée de celui-ci (à l'intérieur d'une fonction par exemple), on parle de portée (ou visibilité) d'une variable.

Lorsque la portée d'une variable se réduit à l'intérieur d'un bloc d'instructions (entre des accolades), on parle de variable locale. Lorsque la variable est visible dans l'intégralité du code, on parle alors de variable globale.

Pour plus d'informations sur la portée des variables, reportez-vous au chapitre sur les fonctions

Trucs & astuces pertinents trouvés dans la base de connaissances

28/01 09h50 Comment récupérer le résultat d'une commande dans une variable (Bash)
17/11 11h21 Tester une variable numérique (Shell)
13/11 20h06 La variable d'environnement PATH (Bash)
Variable perl Plus d'astuces sur « Variable perl »

Discussions pertinentes trouvées dans le forum

27/04 11h30 perl variable Perl et Variable Développement 28/04 10h47->lami20j13
20/02 12h34 perl variable avant use strict [perl]Variable avant et après "use strict;&qu Développement 21/02 23h43->lami20j3
29/07 11h54 asp perl sql like % variable Asp Perl Sql : LIKE avec % et variable Développement 29/07 11h54->kirjinn0
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
07/02 20h46 php session variable [php]session..ou mettre la variable??? Développement 02/01 20h02->maxime_B19
25/10 09h37 php boucle for nom variable [PHP] Boucle for et nom de variable ! Développement 25/10 10h39->kij_8218
28/12 17h00 php utilisation variable [Php] Utilisation de variable Développement 29/12 17h10->ZIG116
13/04 12h16 perl access db pERL -> access DB Développement 26/04 09h36->kij_8212
Discussion fermée Problème résolu Variable perl Plus de discussions sur « Variable perl »

Ce document intitulé « Perl - Les variables » 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.