Am Tag 07-07-04 zur Zeit 17:57:19 schrieb Torsten Foertsch:
On Wednesday 04 July 2007 16:42, Hannes Vogelmann wrote:
Für den speziellen Zweck, wo ich es jetzt hier brauche benötige ich kein Array. Ich will nur Variablen-Namen dynamisch aus sich verändernden Variablen aufrufen bzw. generieren können.
Wenn Du weißt, was Du tust, geht das. Es führt aber zu schlecht wartbaren Programmen.
inzwischen weiß ich vor allem, welche Probleme man sich damit an Land ziehen kann ;-) Vielen Dank für die ausführliche Beschreibung. Ich habe mal ein wenig herumprobiert und bin dann doch recht schnell bei der Erkenntnis gelandet, dass ein @array die Sache wesentlich eleganter löst, zumal die a_n global verwendet werden und nicht nur in der Schleife leben, in der sie aufgerufen werden. [...]
Willst Du also mit globalen oder mit "local" lokalisierten Variable arbeiten, dann so:
$ perl -e '${"a$_"}="x$_" for (1..3); print "$a1 $a2 $a3\n"' x1 x2 x3
Mit my-Variablen geht es nur so:
$ perl -e 'my ($a1,$a2,$a3); eval qq{\$a$_="x$_"} for (1..3); print "$a1 $a2 $a3\n"' x1 x2 x3
Aber da habe ich ja dann gerade dass, was ich vermeiden wollte, und ich muss die Variablen explizit beim Namen nennen und kann den Namen nicht aus der for (...) Schleife generieren. cu Hannes