J'ai récupéré le script suivant dans le threads
http://www.developpez.net/forums/viewtopic.php?t=363437

J'ai fait un peu le ménage ce qui donne en définitive le script suivant


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
48
49
50
51
52
53
#!C:\Perl\bin\perl.exe 
 
 
################################## 
# Tableau d'adresse(s) 
################################## 
 
@EE = ("http://www.google.com/robots.txt","http://search.msn.fr/robots.txt"); 
 
 
for $X( @EE ) { 
 
 
################################## 
# Appelle des fonctions 
################################## 
 
@EE = find(@EE); 
@EE = replace(@EE); 
print "@EE"; # Récupération de robotx.txt 
 
################################## 
# Recherche des robots.txt 
################################## 
 
sub find { 
  use LWP::Simple; 
    my @resultat; 
    for my $url( @_ ) { 
        push @resultat, get($url); 
    } 
    return @resultat; 
 } 
 
################################## 
# Parser robots.txt 
################################## 
 
sub replace 
{ 
for my $T( @_ ) { 
$T =~ s/User-agent: \*//ig; 
$T =~ s/Allow.*//g; 
$X =~ s/\/robots\.txt//ig; 
$T =~ s/Disallow: /$X\/$1/ig; 
$T =~ s/\/\//\//ig; 
$T =~ s/http:\//http:\/\//ig; 
$T =~ s/^\n*//ig; 
$T =~ s/\n$//ig; 
return $T; 
   } 
 } 
}

Mais j'ai un problème insoluble avec la fonction replace, elle ne retourne que le premier item du tableau @EE , j'ai testé divers solutions dont

.........................................................
. Attention code barbare zone 51 lol .
.........................................................

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
sub replace
{
 my @resultat;
for my $T( @_ ) {
 push @resultat,  $T =~ s/User-agent: \*//ig &&
                  $T =~ s/Allow.*//g &&
                  $X =~ s/\/robots\.txt//ig &&
                  $T =~ s/Disallow: /$X\/$1/ig &&
                  $T =~ s/\/\//\//ig &&
                  $T =~ s/http:\//http:\/\//ig &&
                  $T =~ s/^\n*//ig &&
                  $T =~ s/\n$//ig;
  }
  return @resultat;
}
sa ne bug pas mais j'obtient juste résultat 1

Ou est le problème ?