Hi!
Ansonsten kann man natuerlich auch mit den Hausmitteln von Perl eine Rekursion programmieren.
Das wäre mir prinzipiell lieber um plattformindependent zu bleiben. Daher suche ich ja noch noch der "nativen perl" Lösung.
Also gut, dann probier das mal. Bei mir unter WinNT hat's ganz gut funktioniert.
sub listdir {
my $path = shift;
my $mask = shift;
my (@dir, @subdirs, @files);
my $full;
opendir(DIR, "$path") return ();
@dir = readdir(DIR);
closedir DIR;
for (@dir) {
$fullname = "$path/$_";
push(@files, $fullname) if (/$mask/); # finds files and directories
### push(@files, $fullname) if ((-f $fullname) && /$mask/); # finds simple files only
push(@subdirs, $fullname) if ((-d $fullname) && !/^..?/);
}
for (@subdirs) {
push @files, listdir($_, $mask);
}
return @files;
}
print join("\n", listdir(".", ".*htm.*"));
Calocybe <-- das gehoert nicht mehr zum Code! ;-)