|
|
|
|
Salut à vous!
Je plante le décor.
J'ai un fichier pays.txt:
$$COUNTRY=DE;PT;CZ;RO
J'ai un fichier de paramétre:param.txt
$$COUNTRY=
J'ai une commande qui est capable de lire le fichier de parametre:ma_commande()
J'ai un script perl qui change la valeur de param.txt:
la commande s'écrit:
./change_param.pl pays.txt param.txt
et en résultat j'ai dans param.txt:
$$COUNTRY=DE;PT;CZ;RO
Le but est de parcourir le fichier pays.txt,mettre à jour param.txt et lancer successivement ma_commande pays par pays.
Le programme devrait faire ça:
je lis pays.txt
je récupere le premier pays 'DE'.
je lance change_param qui met à jour param.txt $$COUNTRY=DE
je lance ma commande ma_commande
etc...pour PT , CZ et RO.
C'est cette notion de boucle que je ne sais pas faire....
Salut,
|
Ma commande c'est vraiment spécifique, c'est pas utile de rentrer dans le détail:ce qui est important c'est que change_param.pl(script perl qui modifie dans param.txt et en prenant deux parametres, le fichier contenant le contenu de variable $$COUNTRY et le fichier param à mettre à jour) mette à jour la variable pour qu'à l'execution de ma_commande, il est la bonne variable pays.
|
Re,
#!/usr/bin/perl
use warnings;use strict;
my @pays;
open F_PAYS,"pays.txt" or die "E/S : $!\n";
while ( <F_PAYS> ) { # je lit pays.txt
s/(.*)/$1;/; # j'ajoute un ; à la fin pour créer @pays
@pays = $_ =~ /(\w\w);/g;# je stocke les pays
}
# param.txt ne contient que $$COUNTRY= ??
# en ce cas je ne crois pas que tu as besoin de ce fichier
# tu peux utiliser une variable
# donc l'étape ./changer_param.pl pays.txt param.txt tu peux la sauter
#
my $param ='$$COUNTRY=';
foreach (@pays){
system ("echo", "$param$_"); # tu remplaces echo avec ma_commande
}
Et même sans variable #!/usr/bin/perl
use warnings;use strict;
my @pays;
open F_PAYS,"pays.txt" or die "E/S : $!\n";
while ( <F_PAYS> ) { # je lit pays.txt
s/(.*)/$1;/; # j'ajoute un ; à la fin pour créer @pays
@pays = $_ =~ /(\w\w);/g;# je stocke les pays
}
# param.txt ne contient que $$COUNTRY= ??
# en ce cas je ne crois pas que tu as besoin de ce fichier
# donc l'étape ./changer_param.pl pays.txt param.txt tu peux la sauter
foreach (@pays){
system ("echo", '$$COUNTRY='."$_"); # tu remplaces echo avec ma_commande
}lami20j |