|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Victor McSmith 2:5020/496.22 15 Jan 2001 15:07:18 To : All Subject : Рекурсия --------------------------------------------------------------------------------
Где я ложаюсь?
Мне нужно рекурсивно пройти по дереву каталогов (приняв за корень некий каталог)
и в каждом каталоге выполнить некую функцию.
Результат следующий - скрипт проходит только одну ветвь до конца и... все.
#!/usr/bin/perl
#=[ options ]==================================================
$RDir = "/home/archiv"; # некий корневой каталог
#=[ main ]=====================================================
chdir ($RDir);
&Recurse();
#=[ functions ]================================================
sub Recurse()
{
local $UnitLstDir;
local $NextDir = $_[0];
if (defined($NextDir))
{chdir($NextDir)}
else {chdir $RDir};
&TakeInfo(); # Hекая процедура, выполняемая
# в каждой директории
while (defined($UnitLstDir = <./*>))
{
if (-d $UnitLstDir)
{
$UnitLstDir =~ s/^.\///;
&Recurse($UnitLstDir);
};
};
}
sub TakeInfo()
{
print "TakeInfo ".`pwd`;
};
#==============================================================
Да будет твой путь длинней, чем тропа за спиной!
Victor
--- GoldED/LNX 3.00.Beta5 UNREG
* Origin: (2:5020/496.22)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/39463a630a10.html, оценка из 5, голосов 10
|