bonjour,

j'ai un problème avec les pointeur en Perl: en lisant les faq et tuto, c'est écrit qu'on peu faire un pointeur avec \$var. mais quand j'utilise un tel pointeur en parametre de fonction, $var b'est pas modifié...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
my $operationComplexity = 1;
my $operator = 0;
my $expression = 1;
my @identifiers = ("test1", "test2");
 
for (my $i = 0; $i < 10; $i++) {
	RandomAllocation->operationExpressionInt("test", $operationComplexity, 
		@identifiers, \$operator, \$expression);
	print $operator." -|- ".$expression."\n";
}
a l'affichage j'ai toujour "0 -|- 1" alors que la fonction RandomAllocation->operationExpressionInt devrait modifier les valeur de $operator , et $expression :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
sub operationExpressionInt {
	my ( $class, $identifier, $complexite, @identifiers, $operator, $expression ) = @_;	
	my $randValue;
	my $nbIdentifier = @identifiers;
 
	# generer un operateur aleatoire
	$operator = "+";
 
	# generer une expression aleatoire (valeur ou identifiant du tableau)
	$randValue = Random->getRandomInt($nbIdentifier);
 
	if ($randValue == $nbIdentifier) {
		$expression = Random->getRandomInt();
	} else {
		$expression = $identifiers[$randValue];
	}	
}
j'ai tester la fonction sans pointeur, ça marche, ya pas de pb, le probleme se situe au niveau des pointeur qui ne modifie pas les objet pointé.

étant débutant en perl (j'en fait que depuis 1 mois -_-') j'ai un peu de mal avec les pointeurs (peu etre ne fonctionne t'il pas pareil qu'en C?)