AlexBausW: Variable dereferenzieren

Beitrag lesen

Hi Jörk

Ich muß mich hier auch mal zu Wort melden.

Ich mich auch nochmal ;-)

$a = 3;
%c = ('b' => 'a');
print ${$c{'b'}};     # hier wird der Wert von $a, also 3 ausgegeben.

Stellt sich eigentlich nur noch die Frage, warum Cruz hiermit Probleme hatte
»»»»»»> auch nicht so:  ${$input{'var_name'}}

Ich fand die Idee von Dir gut und hab sie gleich ausprobiert, bin aber auf folgendes Problem gestoßen:

$secret = "Hallo Welt";
$input{'var_name'} = 'secret';

$a = $input{'var_name'};

%c = ('b' => 'a');
print ${$c{'b'}};

Ob über $a oder direkt an $c{'b'} überwiesen (ob das auch mit der DB geht ? {Deutsche Bank natürlich, und nicht Deutsche Bundesbahn ;-)}) , heist das Ergebnis nun "secret" !
Daraus schließe ich, daß Du also im Skript bereits wissen musst, wie Deine Referenz heist, und kannst (wie ich leider feststellen musste) keine dynamische Bezeichner verwenden.
Ich denke, so lässt sich auch erklären, warum ${$input{'var_name'}} nicht funktioniert.
Zudem bekomme ich (hoffentlich liegt das nicht an mir ;-) Ärger mit use strict;

Gruß AlexBausW