Perl Zugriff auf my $config = {};

furryhamster

Lt. Commander
Registriert
Okt. 2008
Beiträge
1.101
Hi,

will mit Perl eine Config Datei auslesen. Bin dabei auf diesen Parser gestoßen den ich implementiert habe.

Leider weiß ich nicht wie man darauf zugreift bzw. alle bisherigen versuche scheiterten.

Momentan sieht mein Versuch wie folgt aus:

Code:
my $umgebungsConfig = &parse_config(config.datei);
print $umgebungsConfig->{TESTPARAMETER}

Kann mir jemand sagen was genau das my $config = {}; aus der sub ist und wie ich darauf zugreifen kann? Auf selfhtml werden hash referenzen scheinbar anders deklariert.
 
Die Zeile

Code:
my $config = {};

legt einen leeren Hash an und gibt dir eine Referenz auf diesen Hash zurück. Die Referenz wird in der Variable config gespeichert. Auf einzelne Einträge kannst du so zugreifen (Beispiel mit gefülltem Hash):

Code:
my $config = { foo => 13, bar => 636, bla => 1000 };

print( "Wert von foo ist: ", $$config{ foo }, ".\n" );


P.S. Hmm, deine alternative Syntax funktioniert bei mir allerdings auch.

P.S. #2: Was genau ist denn das eigentliche Fehlerbild?
 
Zuletzt bearbeitet:
Danke, werde morgen mal deine Variante ausprobieren, wobei ich das Gefühl habe, das dies nicht Funktionieren wird, da bei dir auch meine Variante funktioniert mit der ich nichts angezeigt bekomme.

Fehlerbild ist, dass nichts ausgegeben wird. Keine Exception aber auch kein print. Print steht extra zwischen Rauten um sicher zu gehen das ich richtig bin. In der Sub habe ich mal Key und Value ausgegeben, das klappt ohne Problem, die Datei kann also ausgelesen werden
 
Und die Funktion parse_config() hast du auch genau so übernommen, wie sie in dem Link, den du angegeben hast, aussieht?
 
Kann es mir nicht erklären aber habe es gerade nochmal geschrieben und jetzt geht es mit deiner und meiner Schreibweise.
Danke :)

Edit: mhh ganze mechanik scheint zwar prinzipiell zu funktionieren, allerdings wird hier irgendwo zwischen gecached, sodass änderungen nicht neu eingelesen werden. Das Problem habe ich auch oft beim Code ändern. Proxy und Server würden angeblich nicht zwischen speichern. Browser ist es definitiv auch nicht. Aber hierzu werde ich wahrscheinlich noch mal einen separaten Thread erstellen
 
Zuletzt bearbeitet:
Zurück
Oben