Я пытаюсь написать скрипт, который будет обрабатывать определенные файлы.Данные организованы следующим образом: есть папка (назовем ее X), в которую будет помещен мой скрипт.В этой же папке есть подпапка с названием «данные».Это содержит еще несколько подпапок с различными именами, и каждая из них содержит много файлов (никаких других подпапок, только файлы).Мне нужно обработать все файлы в подпапке (точнее, запустить функцию для каждого файла), а затем объединить результаты для всех файлов в подпапке, поэтому для каждой папки есть один результат (независимо от того, сколько файлов он содержит).
Проблема в том, что я не могу получить доступ к файлам, поэтому я могу запустить на них свою функцию.Теперь у меня есть следующее:
$dirname = "data";
opendir ( DIR, $dirname ) || die "Error in opening dir $dirname\n";
while( ($dirname2 = readdir(DIR)) )
{
next if $dirname2 eq ".";
next if $dirname2 eq "..";
opendir ( DIR2, $dirname2 ) || die "Error in opening dir $dirname2\n";
while( ($file = readdir(DIR2)) )
{
next if $file eq ".";
next if $file eq "..";
print( "file:$file\n" );
}
closedir(DIR2);
}
closedir(DIR);
Это всегда дает сбой с сообщением «Ошибка при открытии каталога dir alex».'alex' оказывается первым каталогом в каталоге данных.У меня вопрос - где проблема?Это даже правильный путь, как добиться того, что я пытаюсь сделать?Я также беспокоюсь, что это мой сбой, если в папке данных есть файл, так как я не могу открыть его с помощью opendir, или я могу?
PS: извините за этот ужасный код Perl - явсе еще пытаюсь выучить этот язык.
Спасибо, Питер