tie::file ne remplace pas
bonjour,
souhautant modifier une ligne d'un fichier sans jamais toucher au reste, je me suis tourné vers tie::file
Code:
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 54 55 56 57 58 59 60 61 62 63 64
|
#!/usr/bin/perl -w
use strict;
use Tie::File;
my $nouvelle_liste="";
my $ancienne_liste="";
open FICHIER,"< liste_tor.txt" or die "Le fichier liste_tor.txt n'existe pas !";
my $ligne;
while ($ligne = <FICHIER>)
{
$nouvelle_liste.=$ligne;
}
close FICHIER;
open FICHIER,"< liste_fixe.txt" or die "Le fichier liste_fixe.txt n'existe pas !";
while ($ligne = <FICHIER>)
{
$nouvelle_liste.=$ligne;
}
close FICHIER;
open FICHIER,"< ancienne_liste.txt" or die "Le fichier ancienne_liste.txt n'existe pas !";
while ($ligne = <FICHIER>)
{
$ancienne_liste.=$ligne;
}
close FICHIER;
my @tableau1;
tie @tableau1, 'Tie::File', "framearticle.html" or die ("probleme avec le fichier 1");
for (@tableau1)
{s/{$ancienne_liste}/{$nouvelle_liste}/g;}
untie @tableau1; # all finished
my @tableau2;
tie @tableau2, 'Tie::File', "framefollow.html" or die ("probleme avec le fichier 2");
for (@tableau2)
{s/{$ancienne_liste}/{$nouvelle_liste}/g;}
untie @tableau2; # all finished
my @tableau3;
tie @tableau3, 'Tie::File', "frameheader.html" or die ("probleme avec le fichier 3");
for (@tableau3)
{s/{$ancienne_liste}/{$nouvelle_liste}/g;}
untie @tableau3; # all finished
my @tableau4;
tie @tableau4, 'Tie::File', "framepreview.html" or die ("probleme avec le fichier 4");
for (@tableau4)
{s/{$ancienne_liste}/{$nouvelle_liste}/g;}
untie @tableau4; # all finished
open FICHIER,"> ancienne_liste.txt" or die "probleme avec le fichier ancienne liste !";
print FICHIER $nouvelle_liste;
close FICHIER; |
normalement le motif $ancienne_liste devrait etre remplacé dans les fichiers frame*.html par $nouvelle_liste pourtant il n'en est rien.
quelqu'un peut il m'aider ?