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