Bonjour,

J'ai deux tableaux:


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
@TabeauConsensus
 
 
$VAR75 = [
           'C',
           'T'
         ];
$VAR76 = [
           'G'
         ];
$VAR77 = [
           'A',
           'T'
         ];
$VAR78 = [
           'A',
           'G'
         ];
$VAR79 = [
           'A',
           'T'
         ];

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my %Correspondances =
(
        qw(GA) => 'R',
        qw(GT) => 'K',
        qw(GC) => 'S',
        qw(AT) => 'W',
        qw(AC) => 'M',
        qw(TC) => 'Y',
        qw(GAT) => 'D',
        qw(GAC) => 'V',
        qw(GTC) => 'B',
        qw(ATC) => 'H',
        qw(ATCG) => 'N',
);
Il faudrait quelque chose comme ça ^^ mais qui fonctionne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
for (my $j =0; $j<@TableauConsensus; $j++)
{
                @{$TableauConsensus[$j]} = $Correspondances{@{$TableauConsensus[$j]}};
 
}
Vu que c'est une égalité d'arrays, cela ne fonctionne pas. Existe t'il une façon plus simple que d'utiliser des boucles vérifiant une à une l'égalité des élémentes des 2 array? Peut-être avec map { $instances{$_}++ } @array1;

Vous m'aviez précédemment aidée sur le forum avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
my @AccReq = ('AF148850','AF148851','AZERTY','X55640');
my @AccTrouves = ('AF148850','AF148851','X55640');
 
 
my %instances = ();
map { $instances{$_}++ } @AccReq;
map { $instances{$_}++ } @AccTrouves;
my @items   = grep { $instances{$_} == 1 } keys(%instances);
my @doubles = grep { $instances{$_} == 2 } keys(%instances);
 
print("Items uniques : \n * "   . join("\n * ", @items) . "\n");
print("Items en double : \n * " . join("\n * ", @doubles) . "\n");
Est-ce ainsi qu'il faut que je procède? Et vérifier que @items soit vide?
Ou existe-t'il plus simple?

Merci pour votre aide,


Jasmine,