no save
Assistance
Achat
News

Forum | programmation
Perl et Variable
lami20j, le jeu. 27 avr. 2006 à 22:55:15
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
PrécédentGoku
avr. 06
lami20j
avr. 06
Suivant
REPONSES
lami20j
avr. 06
Goku
avr. 06
lami20j
avr. 06
Goku
avr. 06
lami20j
avr. 06
Goku
avr. 06
lami20j
avr. 06
lami20j
avr. 06
lami20j
avr. 06
Goku
avr. 06
Version Web
Réalisé par RedShift
no save