@ Crian meine Lösung nicht bekommen?
Dann poste ich mal selbst.
Die Funktion zum parsen und eintragen in einen Hash:
sub parse {
my ($dir, $ref) = @_;
foreach my $entry (<$dir$dt*>) {
my ($name) =($entry =~ m/.*\/(.+)?$/); # basename
if (-d $entry) {
$ref->{$name} = {};
parse($entry, $ref->{$name}); # Rekursion
} else {
$ref->{$name}++;
}
}
}
Und die Ausgabe, die ich mal selbst geschrieben hab. Habs halt ohne Module gemacht.
sub print_struct {
my ($ref,$depth) = @_;
$depth++; # Tiefe für Tabs
foreach my $entry (sort keys %{$ref}) {
if( (ref $ref->{$entry}) eq 'HASH') {
print "\t" x $depth, $entry, "\=\>\n";
print_struct($ref->{$entry}, $depth);
} else {
print "\t" x ($depth), $entry, "\n";
}
}
}
steve