Bonjour,
j'essaye de faire un script pour passer plusieurs fichiers en arguments pour qu'ils soit modifié et le tout mis dans un seul fichier.
les fichiers sont bien lu et on voit la modification défiler à l'écran mais j'ai toujours un message comme quoi il ne peut pas ouvrir la variable source pour le filehandle.
Le fait d'avoir plusieurs arguments poserait problème? Une idée ?
Merci
use strict;
use warnings;
use feature 'say';
my @array = <>; #lis le contenue des arguments et les place dans @array
my $source = join " ", @array; #concatène les listes reçu précédemment pour les mettres dans un seul fichier variable
my $fichier_dst = "fichier_multiple.txt"; #chemin et nom du fichier de sortie suite substitution
#Ouvre le fichier source et le place dans un filehandle pour traitement.
open (my $fh_src, '<', $source) or die "impossible d'ouvrir le fichier '$source' en lecture";
#ouvre un filehandle pour le fichier destination pour traitement à venir.
open (my $fh_dst, '>', $fichier_dst) or die "impossible d'ouvrir le fichier '$fichier_dst' en écriture";
while (my $ligne = <$fh_src>) #Obligé de déclarer une nouvelle varialbe (ici $ligne) qui fera partie que de la boucle while donc il faut lui transmettre le contenue de la variale $fh_src
{
$ligne =~ s/,/;/g; # remplace les virgules par point virgule dans le fichier lu.
say $ligne; # vérifie la substitution en affichant la variable après modification.
print $fh_dst $ligne; # met le résultat de $ligne dans la variable $fh_dst qui sera dans le fichier de copie.
}
close $fh_src;
close $fh_dst;
Partager