Bonjour,

j'aimerais lire deux fichiers avec des url
url1.txt (ancienne url)
url2.txt (nouvelle url)
afin de faire un changement dans une base

Je recupere mes lignes de la facon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
my @liste1;
if (open(FILE1,$fic1)) {@liste1 = <FILE1>;} 
else {print "Erreur lecture :$!\n";}
close(FILE1);
 
my @liste2;
if (open(FILE2,$fic2)) {@liste2 = <FILE2>;} 
else {print "Erreur lecture :$!\n";}
close(FILE2);
et je lance une boucle pour la requete :
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
 
 
$j = 0 ;		
do 
{
my $url1 = "$liste1[$j]" ;
my $url2 = "$liste2[$j]" ;
 
$query="select idurl, url from master.murl where url Like \'%$url1%\'" ;
$sth = $dbh->prepare($query);
$sth->execute();
 
$i=0;
while ( @row = $sth->fetchrow_array )
{
 
if($row[1] =~ /$url1/ )
{
print $url1 ; # ici la valeur est perdu
print $url2 ; # ici la valeur est perdu
print "\n" ; 
print "$row[0]\t$row[1]\n";
$row[1] =~ s/$url1/$url2/g ;
$row[1] =~ s/\s+$//; # suppression des espaces en fin de ligne
print "$row[0]\t$row[1]\n";
$query2="update master.murl set url = '$row[1]' where idurl = '$row[0]'";
$sth2 = $dbh->prepare($query2);
$sth2->execute();
$sth2->finish();
$i++;
}
}
 
$j ++ ;
}until ($j eq $nbl2) ;
 
$sth->finish();
Voila la sortie que j'obtient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
www.google.fr
www.yahoo.fr
www.free.fr
www.noos.fr
 
0
voulez vous valider les changement O/N
En fait j'aimerais savoir comment faire passer mes deux variables $url1 et $url2 dans le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
while ( @row = $sth->fetchrow_array )