bonjour,
je ne comprends pas pourquoi lorsque je passe $string1 en parametre de getSiteNumber, la fonction me retourne 0. Normalement, $string1 devrait matcher la $key (j'ai testé avec et sans quotemeta), ça renvoie toujours zero). Si zero est retourné c'est que $url!~$key, non ?

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
   1.
      #!/usr/bin/perl -w
   2.
      use strict;
   3.
 
   4.
      my %hashSites;
   5.
      my $string1 = "http://www.ensh.dz/exchange/";
   6.
      my $string2 = "http://www.ensh.dz/ensh.css";
   7.
      $hashSites{quotemeta("http://www.ensh.dz")} = 1;
   8.
 
   9.
      sub getSiteNumber{
  10.
          my $url = $_[0];
  11.
          my $numero;
  12.
          while ( my ($key, $value) = each(%hashSites) ){
  13.
                  if($url =~ /^$key/){
  14.
                      $numero = $value;
  15.
                      return $numero;
  16.
                  }
  17.
          }
  18.
 
  19.
      }
  20.
 
  21.
 
  22.
      print "\n".getSiteNumber($string2);
  23.
      print "\n".getSiteNumber($string1);
Merci de votre aide