# PASSAGE DE TABLEAUX PAR REFERENCES EN PERL 5 # Juan Manuel Torres-Moreno # Université d'Avignon et des Pays de Vaucluse # juan-manuel.torres@univ-avignon.fr #==================================================== #Le passage par référence est utilié pour passer des tableaux en paramètres à une fonction. #En effet, les paramètres d'une fonction sont passés comme une liste de valeurs scalaires à plat. #Si on désire passer 2 tableaux @tab1=(1,1,1) et @tab2=(2,2) à une fonction, et que l'on écrit : #mafonction (@tab1, @tab2); #alors perl traduira cela comme : #mafonction (1,1,1,2,2); #car il met toutes les valeurs à plat dans une liste. #Une fois dans la fonction on sera bien embêté pour savoir distinguer les éléments du premier tableau de ceux du deuxième. #On va donc passer une référence sur chaque tableau : #mafonction (@tab1, @tab2); #Exemple : sub liste_gt { my ($l1ref, $l2ref) = @_; $n1 = @$l1ref; # @$l1ref représente le tableau référencé par $l1ref $n2 = @$l2ref; # (affecter un tableau dans un scalaire retourne le nombre d'éléments) if ($n1 > $n2) { return 1; } else { return 0; } } @tab1 = (1,2,3); @tab2 = ("a",2,"r",5); if (liste_gt(@tab1, @tab2)) { print "tab1 a plus d'éléments que tab2n"; } else { print "tab2 a plus d'éléments que tab1n"; }