Aller au contenu  Aller au menu  Plan du site  Flux RSS

Flash The Tigre

Administration - Réseau - Logiciel.

  1. Page d'accueil
  2. Programmation
  3. Perl

Perl – Référence

11-02-2010 à 11:04 par Flash Koti

Dans Perl

http://flash.54n.free.fr/?/Programmation/Perl/Perl-Reference

Nombre de commentaires : 0

Les références sont l’équivalent Perl des pointeurs.

Pour faire pointer une référence sur une variable :

my $var = 18;

my $refvar = \$var;

La référence est un scalaire.

La référence peut pointer sur un tableau, table de hachage, scalaire, mais aussi vers un handle de fichier ou une fonction.

Référence sur type de variable

Référence sur Scalaire :

my $var = 18;

my $refvar = \$var;

$$refvar = 52; # Affecte 52 à $var

print $$refvar; # Affiche la valeur de $var

Référence et fonction :

Exemple :

sub Init {

my ($refvar) = @_; # Référence sur l’argument passé à la fonction

$$refvar = 0;

}

Init($refsurargument); # ou Init(\$argument);

Exemple :

sub fncValeur {

my $valeur = 3.14;

return \$valeur;

}

my $PI = fncValeur();

$valeur n’existe que dans la fonction fncValeur, mais tant qu’une référence pointera sur sa valeur, celle-ci existera (et occupera un espace mémoire).

Un autre appel à la fonction fncValeur, créera une nouvelle variable, ie : espace mémoire.

Référence sur tableau :

my @tab = (1,4,5,7);

my $reftab = \@tab;

On peut alors accèder au tableau soit par la variable @tab soit par sa référence.

@tab <=> @$reftab

$tab[i] <=> $$reftab[i]

ou $reftab->[i]

Utilisation des référence pour créer des tableaux de tableaux :

my $tab1 = (1,2,3);

my $tab1 = (1,2,3);

my $tab = (7,8,\$tab1,\$tab2,9,0);

$tab est un tableau comportant les scalaires 7,8,9 et 0 et deux tableaux, tab1 et tab2.

Référence sur table de hachage :

my $refhac = \$hac;

On a alors :

%hac <=> %$refhac

$hac{cle} <=> $$refhac{cle}

ou $refhac -> {cle}

On peut mixer grâce aux références les tableaux de tableaux avec les tables de hachages.

Commentaires