Salut à tous. Je suis un débutant en Perl. J'en avais fait un peu y'a quelques années mais j'ai oublié pas mal de trucs. Il se trouve que je suis en ce moment sur un projet un peu athypique: Je ne pourrais faire mes tests qu'au dernier momment. Je suis sous Windows. Voilà pour les présentations.
Donc voici le code auquel j'ai pensé pour faire ma correction. Après je vous mets mes questions.
Merci, j'ai déjà pas mal appris en lisant d'autres sujet en rapport. J'espère que j'ai été suffisament clair.
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 use File::Find; find(\&wanted,"../../HTML/"); #donc je recherche ce que je veux dans un répertoire HTML qui contient des sous répertoires. sub wanted #définition de la fonction { if (/^TS/) #premiere question je dois mettre ça ou bien un $_ eq... ou bien les 2 vont? { my $mon_fichier = $_; #on stock le nom du fichier actuel open (FILE, $mon_fichier) or die "$!\n"; #fichier actuel ouvert en lecture seule, par contre je met bêtement le $!\n. open (NEW_FILE, ">temp.html") or die "$!\n"; #fichier temporaire correctif de mon_fichier. while (<FILE>) { #parcous le fichier ligne par ligne my $ligne = $_; #voila mon probleme, je sais pas si ça marche if (/toto = \"\#/) # en gros je veux supprimer le # { $ligne=~s/toto=\"\#/toto=\"/; print NEW_FILE $ligne."\n"; } else { print NEW_FILE $ligne."\n"; } } Close FILE; Close NEW_FILE; #après je vois pas trop comment remplacer le fichier non corrigé. }
Partager