> Я давно на перле не пЕсал - но чет мне кажется что
> возвращать ссылку на массив который объявлен как "my" внутри блока не
> есть гут )) Да, согласен!
Область видимости переменных никто не отменял.
Всё дело в рекурсии, каждый вызов объявляет новый манипулятор каталога и новый массив.
Короче, не прокатит.
Массивов бояться на перле не пейсать ))
Мы боимся и потому почти обойдёмся без них.
Вот те же яица, вид профиль с циклом for, без массива для "складирования" полученных директорий и с живым print'ом ))
#!/usr/bin/perluse strict;
use warnings;
my $path = $ARGV[0] || "/home";
sub tree {
my $root = shift;
my $dh;
opendir $dh, $root;
my @dir = readdir $dh;
closedir $dh;
for my $subdir (@dir) {
next if $subdir eq "." or $subdir eq "..";
print "$root/$subdir\n" and tree("$root/$subdir") if -d "$root/$subdir";
}
}
tree $path;