|
|||||||||||||||||||||||||||
Hejsa,
Prøv noget i retning af
foreach my $file (<$my_dir/*/*/*.jpg>) {
push(@files, $file);
}
hvilket leder i 2 niveauer. Hvis du har brug for et vilkårligt antal
niveauer kan du enten bruge modulet File::Find eller skrive noget
rekursivt kode a la
sub find_jpg {
my ($dir, $array_ref) = @_;
local *DIR;
opendir(DIR, $dir) or die $_;
while ($entry = readdir(DIR)) {
if (($entry eq "..") or ($entry == ".")) {
next;
}
$file = "$dir/$entry";
if (-d $file) {
find_jpg($file, $array_ref);
} else {
push(@$array_ref, $file);
}
}
closedir(DIR);
}
find_jpg($list = []);
Held og lykke!
Hilsen
Anders Sønderberg Mortensen
On Sun, 14 Jul 2002, Lars H. wrote:
> Hvordan laves en liste over alle *.jpg filer rekursivt. Svaret skal bruges
> som en liste, @files.
>
> Følgende er IKKE måden at gøre det på da det giver en scalar med det hele.
>
>
> $files = system("find /mnt/flash -name \"*.jpg\" ");
> print "$files";
>
>
|
||||||||||||||
|
||||||||||||||