Le langage Perl – Variables (Partie II)

perl_logo

Après vous avoir présenté le langage Perl dans mon premier billet, nous allons maintenant explorer et approfondir les différents aspects du langage, et plus précisément les variables.

Syntaxe

Une variable est un littéral précédé des symboles ‘$’, ‘@’ ou ‘%’.

#!/usr/local/bin/perl

 

$chiff = 10;

$chaine = "ceci est une phrase";

@noms = ("Foo", "Bar", "Baz");   # tableau simple

%ages = ("Michel Dupont", 39,    # tableau associatif

"Dirty Daniel", 34,

"Angelique", 27,

"Guillaume", "21 ans de chien",

"Jeanne Calment", 121);

La portée des variables

En Perl, les variables sont globales par défaut, et sont donc visibles dans l’ensemble du programme. Pour rendre une variable locale, il faut qu’elle soit précédée du mot clé ‘my’ lors de la déclaration. Une variable locale est visible dans le bloc ou la fonction où elle est définie.

Par exemple :

#!/usr/local/bin/perl

$I = 10;

{

my $I = 2;

{

$I++;

{

my $I = 4;

printf ("I = %d \n",$I); # Affiche I = 4

}

printf ("I = %d \n",$I);     # Affiche I = 3

}

printf ("I = %d \n",$I);       # Affiche I = 3

}

printf ("I = %d \n",$I);           # Affiche I = 10

Il est possible de rendre la déclaration préalable de variables obligatoire avec la commande ‘use strict’. Dans ce cas, toute variable doit être préalablement déclarée avec ‘my’ avant son utilisation, sinon une erreur sera générée lors de la compilation.

#!/usr/local/bin/perl

use strict;

my $Compteur=10;

$compteur++;                      # erreur de frappe

print ('$Compteur = ',"$Compteur \n");

 

 

Dans ce programme, la variable ‘compteur’ n'ayant pas été définie à cause de l’erreur de saisie (eh oui, petit rappel : Perl est sensible à la casse !), le compilateur génère une erreur.

Types de variable

Le type de variable est défini selon la valeur affectée lors de la déclaration ou de l’utilisation.

Les différents types sont :

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
@Tableau = (12,"Bonjour",024);

$Test = $Tableau[1];   # $Test = « Bonjour »

$Tableau[0] = "Toto $Tableau[1]"; # $Tableau[0] = « Toto Bonjour »

type tableau
%Toto = ('Adresse' => '2, rue de Toto','Nom' => 'Dupont');

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

$Toto{'Nom'} = "Durant";

type tableau associatif

 

Les tableaux associatifs sont équivalents au « HashMap » en Java, on peut y stocker des paires de clé-valeur.

Conclusion

Les variables en Perl sont faiblement typées. C’est au moment de leur affectation que l’interpréteur détermine le type de la variable.

La gestion de la portée des variables locales (dont la déclaration est précédée du mot clé « my ») est similaire à celle en langage C : une telle variable n’est visible que dans le bloc de code dans lequel elle est déclarée.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.