Frank Schönmann: variablennamen dynamisch vergeben?

Beitrag lesen

hi!

Ich habe ein PerlScript geschrieben, daß u.a. einen Parameterfile ausliest. Die Datei hat
diesen Aufbau:
...
bcolor=#041420
textcolor=#99bbee
...
Jede Zeile wird also in $namebuf und $argbuf zwischengespeichert. Dann wird die komplette
Liste an IF Abfragen durchgegangen und falls der entsprechende Eintrag gefunden wurde,
wird eine Variable belegt, die genauso heißt wie der Wert in $namebuf.
Ist es möglich, daß ganze irgendwie in etwas ähnliches wie folgendes umzuwandeln?
open (pref, "$cgi_bin_path$prefs_db")  
        while(<pref>)
        {
        ($namebuf, $argbuf) = split(/=/,$_);
        $argbuf  =~ s/\n//;          
        $[$namebuf] = $argbuf
        }
Also, daß die Variablen dynamisch einen Namen bekommen, der dem Inhalt von $namebuf
entspricht?

Informiere dich mal über Hashs bzw assoziative Arrays/Listen:

open PREF, "$cgi_bin_path$prefs_db";
while (<PREF>)
{
  chop;
  my ($name, $arg) = split /=/;
  $hashname{$name} = $arg;
}
close PREF;

bye, Frank!