Прога сканирует дерево каталогов (Использование File::Find исключено). И заполняет структуру для последующей обработки..
Собственно проблема. Мне нужно онраничить ход рекурсии наличием в обрабатываемой папке файла .description Вроде все дела правильно, но сканирование просто выдает какой то бред.. :(
собссно скрипт.. точнее проблемная часть
#!/usr/bin/perl
use strict;
use File::Basename;
use File::Find;
use Fcntl;
use configure; # импорт $DFNAME это файл ограничитель (.description)
# $TARGET это точка старта сканирования
use POSIX qw(locale_h);
setlocale(LC_CTYPE,'ru_RU.KOI8-R');
sub fiD # поиск в текущей папке ограничителя
{
opendir DIR,shift or die "fiD(): Cant open $!\n";
my $file=grep {/^$DFNAME/} readdir DIR;
closedir DIR or die "fiD(): Cant close $TARGET/OS $!\n";
return $file;
}
my (чsc,%files,╨ck,$fl,$ell);
sub folder {
my $dir=shift;
return unless $dir;
opendir(DIR,$dir) or (warn "Can't opendir $dir: $!" and return 0);
my @files=readdir(DIR);
closedir(DIR);
foreach (@files) {
next if /^\.\.?$/;
if (-d $filename) {
print qq(Folder: $filename\n);
folder($filename);
$back{$filename}=$dir;
$fl=0;
}else{
my $dfn="$dir/$DFNAME";
my $path=dirname($filename);
my $name=basename($filename);
if(-e $dfn){
unless($fl){
open(FH,"< $dfn") or die $!;
push @{$desc{$path}},$_ while(<FH>);
close(FH) or die $!;
$fl++;
}
push @{$files{$path}},$name if $filename ne $dfn;
}
}
}
}
folder($TARGET);
Млин где в рекурсии поставить ограничение??! Я уже замахался .. подскажите народ плззззззз!