OVH Cloud OVH Cloud

limiter le nombre de méthodes

12 réponses
Avatar
Paul
Bonjour,

je souhaite limiter mes lignes de codes, et je ne connais pas trop
Perl.
Si j'ai ces variables :

$var1 =3D "toto";
$var2 =3D "tata";

et ensuite j'ai 2 m=E9thodes comme ceci :
sub getVar1 {
return $var1;
}
sub getVar2 {
return $var2;
}

Est-il possible de passer le nom de la variable en param=E8tre afin de
n'avoir plus qu'une seule m=E9thode, un peu comme ceci :

sub get_A_Var {
my ($varname) =3D @_; # le nom de la variable que je souhaite obtenir
return ???????;
}

donc, il me resterai plus qu'a toujours appeler la m=EAme m=E9thode
get_A_Var() en lui sp=E9cifiant quelle variable je souhaite obtenir :
get_A_Var("var1"), me retournerai "toto"

Merci de votre aide. J'spere avoir =E9t=E9 assez clair dans mes
explications.

2 réponses

1 2
Avatar
Yoann Wyffels
Bonjour Paul,

Essaye peut-être la solution suivante, je ne sais pas si elle est propre ou
non, mais elle fonctionne:

sub GetVar{

my $var=$_[0];
return $$var; #renvoi $var1

}


$var1=GetVar("var1");
Avatar
Nicolas George
"Yoann Wyffels" wrote in message
<42dff831$0$19565$:
Essaye peut-être la solution suivante, je ne sais pas si elle est propre ou
non, mais elle fonctionne:


Essaie avec use strict (comme tous les programmes devraient contenir de
toutes façons), tu verras que ce ne l'est pas, propre.

1 2