Ключевые слова:perl, hash, example, (найти похожие документы)
Date: Wed, 27 Feb 2002 10:19:29 +0000 (UTC)
From: Rick Atreides <rick@nnz.ru>
Newsgroups: fido7.ru.cgi.perl
Subject: Perl: дерево каталогов на вложенных хешах
> Создавать бесчисленные вложенные рефы. Вот
> этого не шарю как сделать.
Это-же класика жанра
$root = GetDir('.');
sub GetDir {
my $Path = shift;
my %DirHash;
my @DirContent;
opendir(DIR, "$Path");
@DirContent = grep { !/^\.{1,2}$/} readdir(DIR);
closedir(DIR);
foreach $file (@DirContent) {
print "$Path/$file\n";
if (-d $file) { $DirHash{$file} = GetDir("$Path/$file"); }
else { $DirHash{$file} = -1; }
}
return \%DirHash;
}
И потом соответсвенно парсишь потом если хеш = -1 (или проверяй на наличие
файла), то файло, а иначе идём глубже.
Типа
$a = \%{$root{'/usr'}};
$a = \%{$a{'/local'}};
$a = \%{$a{'/etc'}};
etc :-))
Рабочий пример взят из скрипта посторения индексной базы для поиска.
Ромик.