ç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.