Bonjour,
J'ai un array de array :
Je voudrais connaître le nombre que j'ai d'éléments définis d'indexe 0 et d'indexe 1.
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
19
20
21
22 $VAR1 = [ [ '1', undef ], [ undef, '5' ], [ '3', '6' ], [ '4', undef ], [ '5', '45' ] ];
Voici la fonction parcourant cet array d'array :
%recept_table contient donc comme clés les indexes des listes et en valeur le nombre d'occurences de ceux-ci
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
19
20
21 # fonction pour remplir un tableau d'éléments sub remplir{ my $table = $_[0]; my %recept_table; foreach my $ref (@{$table}){ for (my $col=0; $col<@{$ref}; $col++){ if($col){ $recept_table{$col}++; } } } my $ref = \%recept_table; return($ref) } ... my $ref_hash_recept; $ref_hash_recept = remplir($table); # pour tester : while ((my $val, my $cle)=each %{$ref_hash_recept} ){ print "nombre d'éléments définis : " .$cle. " \tindexe array ".$val."\n"; }
Si mon test est if($col), j'obtiens en réponse
nombre d'éléments définis : 5 indexe array 1
Si mon test est if($col=~ /\d+/), j'obtiens en réponse
Pourriez-vous m'expliquer pourquoi les valeurs non définies passent également ce test.nombre d'éléments définis : 5 indexe array 1
nombre d'éléments définis : 5 indexe array 0
Ma question est stupide, je viens de me rendre compte que $col est mon indice et non ma valeur ^^ et dire que ça fait au moins trente minutes que je me casse la tête pour rien
merci,
Partager