Hi Jörk
Dein Beispiel müßte also durch eine weitere Dereferenzierung zum Laufen zu bringen sein:
print ${${$c{'b'}}};
Treffer versenkt ;-) Da hab ich ein Eigentor fabriziert. An die Mehrfachreferenzierung hätte ich auch selbst denken können <g> schließlich hab
ich eigentlich lange genug mit perlref zugebracht (scheinbar nicht lange genug) </g>
Ich frage mich nur, warum Du hier einen solchen Weg gehst. In Deinem Beispiel hast Du doch schon ein Hash namens input. Verwende dieses enstelle von c und benutze 'var_name' als Index:
${$input{'var_name'}}
Das war nur der umständliche Weg, den String 'secret' als symbolische Referenz zu einzuflechten *g* (und die Mehrfachreferenzierung nicht zu beachten <schlagmichselbst>).
Oder anders gesagt - so wie ursprünglich mal von Cruz angedacht ...
Ich bleibe also dabei: Eigentlich müßte es so funktionieren, wie Cruz es probiert hat, aber ...
Funktioniert jetzt - zumindest von der Kommandozeile aus - bei mir (hätte vielleicht vorher mal alle Möglichkeiten ausprobieren sollen ;-).
Allerdings müsste man entweder use strict; weglassen oder den Block mit der symbolischen Referenz in no strict; einschließen.
Zumindest bei mir gibt`s immer folgende Fehlermeldung bei Gebrauch von use strict;
Can't use string ("secret") as a SCALAR ref while "strict refs" in use at .... [str2ref.pl line 19.]
(Obwohl strict 'refs' gar nicht verwendet wurde !? Ich dacht eigentlich man könnte das unabhängig verwenden )
Vielleicht kannst Du mir dabei weiterhelfen, denn - wie im Thread weiter oben angemerkt - fand ich die Idee, so Daten zu referenzieren echt gut.
Gruß AlexBausW