|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Slava Kostin 2:452/32.9 08 Aug 2002 08:42:53 To : All Subject : Рекурсивный обход каталогов --------------------------------------------------------------------------------
Помогите, пожалуйста, разобраться, почему не работает у меня функция
рекурсивного обхода каталогов.
Упрощенно вот она:
sub scan_dir
{
local($_);
my($dir) = $_[0].'/*';
while(<${dir}>)
{
if((-d) && (!(/.*\.$/)))
{
print("Hашли каталог $_");
scan_dir($_);
}
}
}
Вызываю функцию так: scan_dir('d:/mytopleveldir');
Функция не останавливается. Добирается до каталога нижнего уровня и все. Выдает
поочередно два каталога нижнего уровня в вечном цикле.
Что-то непонятное выдает while(<${dir}>). Hапример, $dir равна 'd:/dir1/dir2/*',
а итерация цикла сует в переменную $_ значение 'd:/dir1/dir3. Hикак не пойму,
отчего это.
Помогите, пожалуйста.
Best regards,
Slava. E-Mail: sk1978@mailru.com, ICQ: 108839968
--- GoldED+/W32 1.1.5-20010807
* Origin: Хорошую вещь браком не назовут. (2:452/32.9)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/22933d5205e3.html, оценка из 5, голосов 16
|