AlexBausW: Variable dereferenzieren

Beitrag lesen

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