Thread Variablen aus einem array erstellen (21 answers)
Opened by Gast at 2008-08-21 16:22

LanX-
 2008-08-22 01:26
#113872 #113872
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Gast+2008-08-21 21:56:13--

1:2:4:5:5:9... usf.

Nachdem ich rausgefunden habe, dass folgendes funktioniert:

Code (perl): (dl )
1
2
3
4
while(<FILEHANDLE>){
  ($a111,$a112,...) = split(/:/);
}
@coord = (a111, a112, a113....)



ja aber du kannst gleich schreiben:


Code (perl): (dl )
1
2
3
while(<FILEHANDLE>){
  @liste = split(/:/);
}


aber was soll die Schleife, wieviele Sodukostellungen liest du ein?


Was du aber eigentlich willst ist doch die Darstellung
Code (perl): (dl )
$coord[$feld][$zeile][$spalte]
Um die Gültigkeit der Stellungen als Summe bei einer fixen Koordinate zu bestimmen, oder?

Leider kennt Perl keine Mehrdimensionalen Arrayslices sonst könntest du schreiben:

Code (perl): (dl )
@coord[0..8][0..2][0..2]=split(/:/);



deswegen sollte ne normale Schleife reichen:

Code (perl): (dl )
1
2
3
4
5
6
7
8
my $idx=0;
for my $feld (0..8) {
  for my $spalte (0..2) {
     for my $zeile (0..2)  {
         $coord[$feld][$zeile][$spalte]=$liste[$idx++];
     }
  }
}


Alternativ könntest du auch so einmalig ein Array @idx basteln, dass es dir erlaubt so zuzugreifen:

Code (perl): (dl )
print $liste[  $idx[$feld][$zeile][$spalte]  ];


Kommt ganz drauf an was du brauchst.

Grüße
LanX

NACHTRAG: es gäbe noch ein paar andere Lösungsansätze, die für einen Anfänger aber definitiv too much wären!

View full thread Variablen aus einem array erstellen