AlexBausW: Array auf Array?

Beitrag lesen

Hallo Peter,

Wenn ich dich richtig verstanden habe, möchtest Du ein mehrdimensionales Array erstellen.
Das geht in Perl nur über Referenzen, da Elemente eines Arrays nur skalare Werte enthalten können (z.B.: Referenzen)

foreach (@liste_der_verzeichnisse) {
  # hier alle Dateien des verzeichnisses einlesen
  # dann entweder in ein Array speichern:
  # a) mit push()
  push @verzeichnisse, [@dateien];
  # b) als Zuweisung
  $verzeichnisse[$i++] = [@dateien];
  # oder unter dem Verzeichnispfad als Schluessel in einem Hash speichern
  $verzeichnisse{$_} = [@dateien];
}

Die eckigen Klammern um das Array erzeugen eine anonyme Liste/Array, also eine Referenz auf eine Liste von Werten (oder so ähnlich ;-)

Zugriff mit:
  $verzeichnisse[$i]->[$j];
oder
  $verzeichnisse{$verzeichnis}->[$j];

Wenn Du nur die Listen/Arrays vereinigen möchtest, kanns Du es wie folgt machen:
  push @allfiles, @dateien1, @dateien2; # geht so auch in einer Schleife
oder:
  @allfiles = @dateien1, @dateien2;  # erneute Zuweisung würde @allfiles überschreiben

Das obige funktioniert, weil Perl Arrays in lineare Listen umwandeln kann und es auch tut. Das ist afaik ein weiterer Grund, warum ein mehrdimensionales Array über Referenzen aufgebaut werden muss. (Aber das ist imho ein Henne/Ei-Paradoxon ;-)

hth

Gruß AlexBausW

Please visit my SELFvisitingcard @ http://www.atomic-eggs.com/selfspezial/daten/150.html