Thread Problem mit Config::Simple
(2 answers)
Opened by Graf Herschel at 2010-09-27 11:21
Ich würde nicht bei jeder Abfrage eines Wertes die ganze Konfigurationsdatei neu laden. Das Kostet unheimlich zeit. Besser ist es sie nur einmal zu laden.
So würde ich es machen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #!/usr/bin/perl use strict; use warnings; use Config::Simple; use Data::Dumper; my $conf=LoadConfig('simple.conf'); my $VAR1=GetKeyResult($conf,'param_a'); my $VAR2=GetKeyResult($conf,'param_b'); my $VAR3=GetKeyResult($conf,'param_a','SECTION_A'); print Dumper($VAR1,$VAR2,$VAR3); sub LoadConfig { my $file=shift; my $conf={}; Config::Simple->import_from($file,$conf) or die Config::Simple->error(); return $conf; } sub GetKeyResult { my $conf=shift; my $key=shift; my $section=shift || 'default'; # ist ein key vorhanden? return [] unless($key); # ist der config-Hash definiert? return [] unless($conf && ref($conf) eq 'HASH'); # gibt es den Eintrag? return [] unless(exists($conf->{"$section.$key"})); # wert holen my $val=$conf->{"$section.$key"}; # Ist es eine Arrayreferenz? wenn nicht in ein anonymes Array packen $val=[$val] unless(ref($val) eq 'ARRAY'); # wert zurückgeben return $val; } Last edited: 2010-09-27 11:57:37 +0200 (CEST) View full thread Problem mit Config::Simple |