Re,
Le script #! /usr/bin/perl
use warnings;
use strict;
open VAR,"var.txt" or die "E/S : $!\n";
open PARAM,"param.txt" or die "E/S : $!\n";
open RES,">resultat.txt" or die "E/S : $!\n";
my @p = <PARAM>;
my %h;
while (<VAR>){
my ($x,$y) = $_ =~ /\$\$(.*)=(.*)/;
$h{$x} = $y;
}
map {for my $e(keys %h){ if ($_ =~ /(.*)$e=?.*/){ $_=~ s/.*/\$\$$e=$h{$e}/}}} @p;
print RES @p;Le résultat
Le fichier var.txt [lamitest@localhost my_perl_script]$ cat var.txt
$$DATE1=01/01/79
$$DATE2=01/01/80
$$var100=10/10/10
$$VAR1=01/01/01979
$$VAR2=toto
$$VAR3=3
[lamitest@localhost my_perl_script]$
Le fichier param.txt [lamitest@localhost my_perl_script]$ cat param.txt
$$DATE1=05/05/05
hfgh
$$DATE2=06/06/06
sdf
$$var100=ksdjfklj
yyyyy
$$var=OOOOO
$var4=titi
$VAR1=01/01/1970
[des autre variables]
$$VAR2=tonton
[du blabla]
$$VAR3=4
L'exécution du script et le résultat (j'ai préfèré d'enregistrer le résultat dans le fichier resultat.txt et de garder le fichier param.txt.
[lamitest@localhost my_perl_script]$ perl ccm_line.pl
[lamitest@localhost my_perl_script]$ cat resultat.txt
$$DATE1=01/01/79
hfgh
$$DATE2=01/01/80
sdf
$$var100=10/10/10
yyyyy
$$var=OOOOO
$var4=titi
$$VAR1=01/01/01979
[des autre variables]
$$VAR2=toto
[du blabla]
$$VAR3=3
[lamitest@localhost my_perl_script]$
Je n'ai pas utilisé les fichiers en tant qu'arguments pour le script. En revanche j'ai ouvert 3 handle de fichiers (2 en lecture et un en écriture).
Si ça ne te convient pas comme ça ou tu essaies de modifier le script ou tu fait un signe.
lami20j


