ça donnait avec mon code :
niveau :
rep :
anapajari a écrit :
 
 
 Oui tu peux aussi faire ça c'est pas bien dur et ça doit s'écrire en 3 lignes:
  Code :
 my %config; while(<FH> ){   /^\ s* (.*? )\ s*=\ s* (.*? )\ s*$/;    $config{$1} = $2; } 
 
  |  
 
 Maintenant utiliser AppConfig ça reste une excellente idée aussi ...
 
   | 
Merci, effectivement avec cela ça fonctionne, mis en forme pour ceux que ça intéresse et pour avoir un exemple concret, voilà ce que j'ai fait (ça pourra pitêtre servir à d'autres noob comme moi  
 ) :
#!/usr/bin/perl
use strict;
system("clear" );
my $file="fichier.config";
open(FIC,$file) || die("Could not open file!" );
my @raw_data=<FIC>;
close(FIC);  
 
my $repertoire="";
my $niveau="";
my %config;
while(<@raw_data> ){
/^\s*(.*?)\s*=\s*(.*?)\s*$/;
$config{$1} = $2;
if ($1 eq "repertoire" )
 {  
 $repertoire=$2;
 }
elsif ($1 eq "niveau" )
 {
 $niveau=$2;
 }
}
print "repertoire=",$repertoire,"\n";
print "niveau=",$niveau,"\n";
 
J'étais parti sur une autre solution qui s'en rapproche :
#!/usr/bin/perl
use strict;
system("clear" );
my $file="fichier.config";
open(FIC,$file) || die("Could not open file!" );
my @raw_data=<FIC>;
close(FIC);
 
my $repertoire="";
my $niveau="";
 
foreach my $wrestler (@raw_data)
{
 chomp($wrestler);
 (my $var,my $value)=split(/\=/,$wrestler);
 
 if ($var eq "repertoire" )
 {  
 $repertoire=$value;
 }
 elsif ($var eq "niveau" )
 {
 $niveau=$value;
 }
}
 
print "repertoire=",$repertoire,"\n";
print "niveau=",$niveau,"\n";
 
Résultat à l'écran :
repertoire=/tmp
niveau=26
 
Je ne sais pas si c'est du code très optimisé mais ça fonctionne.