Variable aus String extrahieren und nutzen

Hallo,

ich will eine Metadatebank anlegen, in der alle Variablen und Funktionen die ich in meinen Skripten öfters nutze enthalten sind.
Diese Variablen und Funktionen sollen auch anderen zur Verfügung stehen. Deshalb will ich es nur an einer Stelle pflegen müssen.

Mein Problem ist jetzt, wenn ich aus der Datebank eine Variable auslese, zb. $Gebjahr = 1976, dann habe ich das ganze zunächst als
String: „$Gebjahr = 1976“ Wie kann ich es jetzt als Variable in meinen Skripten nutzen und darauf zugreifen? Also das $Gebjahr
in meinem Skript dann definiert ist.

Gibt es dazu eine Möglichkeit?
Vielen Dank
Öner

Hallo,

die einfachste Möglichkeit ist ein Hash:

my %vars;
...
$vars{"GebJahr"} = $wert;

das ist zwar nicht ganz das was du suchst aber meines Erachtens die sauberste Lösung.

HTH,
Moritz

Wenn ich dich richtig verstanden habe, hats du zur laufzeit
‚$foo = 7;‘
in der Variable $bla stehen und
willst dass das ausgefuehrt wird

Dann musst du

eval{
$foo
};

schreiben und flutsch hat $foo den wert 7
aber wenn du mit ‚use strict‘ arbeitest, musst du
natuerlich zuerst noch ‚my $foo‘ irgendwo haben…

musst hald zuerst alle Variablennnamen
aus den strings extrahieren und dann ein my davor
und wieder eval.

Frag mich aber nicht wie das mit der Klammerung oder
den anfuehrungszeichen in eval funktioniert,
daran bin ich auch schon oft gescheitert…

Levi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]