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é...
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 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"; }
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é.
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]; } }
é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?)
Partager