Comme le but n'était pas clairment affiché dans l'énoncé initial, j'ai pris pour hypothèse qu'il fallait lister toutes les relations, même partielles.
Si l'on ne doit prendre en compte que les relations complètes, alors oui, c'est bien l'intersection qu'il faut prendre.
L'algorithme est donc différent.
Ca m'apprendras à coder sans exécuter...By the way, avec ta fonction getMatrice, voila ce que l’interpréteur me ressort :
line 139 : $matrix{$cle}, [@tmp];
Il fallait bien sur écrire :
Pour sélectionner l'intersection au lieu de l'union, il est possible de procéder ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $matrix{$cle} = [@tmp];
- soit utiliser la fonction grep
- soit utiliser le module List::Compare (fonction get_intersection à utiliser deux fois puisque le module n'accepte que 2 tables à la fois).
Une manière de l'écrire avec un grep :
(je n'ai pas exécuté ce code)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 my @cles = grep { exists $matrixOfP10send{$_} && exists $matrixOfslev5recv{$_} } keys %matrixOfP12recv; # On boucle sur cette liste (contenant dans les clés du hash %cles) foreach my $cle (@cles) { ...
Partager