Bonjour,

Ce code ci fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
        if (($ok == 0)&($line =~ /(\w+_\w+_\w+[AIc])\d+([ab]) ([ATCG]+) versus (\w+_\w+_\w+[AIc])\d+([ab]) ([ATCG]+)$/i))
        {     
          if((!exists $h_rejected{$1})&(!exists $h_rejected{$4}))
          {
            $bacteria1 = $1;
            $type1 = $2;
            $adn1 = $3;
            $bacteria2 = $4;
            $type2 = $5;
            $adn2 = $6;
            $ok ++;
          }
        }
Mais pas celui ci vu que j'utilise les \1 et \4 en dehors de mon expression régulières :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
if (($ok == 0)&($line =~ /(\w+_\w+_\w+[AIc])\d+([ab]) ([ATCG]+) versus (\w+_\w+_\w+[AIc])\d+([ab]) ([ATCG]+)$/i)&(!exists $h_rejected{\1})&(!exists $h_rejected{\4}))
        {     
          $bacteria1 = $1;
          $type1 = $2;
          $adn1 = $3;
          $bacteria2 = $4;
          $type2 = $5;
          $adn2 = $6;
          $ok ++;
        }

Est-ce possible de regrouper les deux if sur une seule ligne?


Merci beaucoup,


Jasmine,