bonjour,
souhautant modifier une ligne d'un fichier sans jamais toucher au reste, je me suis tourné vers tie::file
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
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 ?
Partager