Листинг 9.10. Рекурсивный просмотр дерева каталогов
sub tree {
local (*ROOT);
my ($root) = $_[0];
opendir ROOT, $root;
my (@filelist) = readdir ROOT;
closedir ROOT;
for $x (@filelist) {
if ($х ne "." and $x ne "..") {
$x = $root."/".$x;
print " $x\n" if (-f $x);
if (-d $x) {
print "$x:\n";
tree($x);
}
}
}
}
Здесь использованы встроенные подпрограммы Perl
opendir( ),
closedir( ),
readdir( ),
применяемые соответственно для открытия каталога, закрытия каталога и чтения его содержимого.
Подпрограмма tree( ), рекурсивно просматривая каталог, переданный ей в качестве параметра, выводит
имена вложенных подкаталогов и содержащихся в них файлов.