|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 03 Jun 2001 13:34:00 To : Igor Nikolayev Subject : Re: last modified -------------------------------------------------------------------------------- Здравствуй, Igor Nikolayev. В твоём письме от Sun, 03 Jun 2001 00:23:06 +0400 написано: IN>>> opendir(DIR, "./news") or die "couldn't open news directory: $!"; IN>>> while (defined ($news = readdir(DIR))) { IN>>> print "$news - "; PA>> в $news тут у тебя будет просто имя файла, по отношению к ./news и, PA>> естественно, stat его найти не может. PA>> print ((stat("./news/$news"))[9]) . "\n"; IN> А почему print его находит? Функция print не умеет искать файлы. Вообще. Пятнадцать минут медитации на этот факт дадут тебе ответ на твой вопрос. После этого можно читать дальше. IN> И тогда получается, что использовать opendir здесь нужно только для того, IN> чтобы проверить существование нужного файла (defined)? Hет. Для того, чтобы можно было использовать readdir. Отвечая на тот вопрос, который ты, видимо, имел в виду: нет, readdir тоже не имеет никакого отношения к существованию файла, во всяком случае в том смысле, что наличие записи в директории не гарантирует успешности stat(). Она читает очередную запись в директории (в списковом контексте - сразу все оставшиеся записи) и возвращает ее. Как эта запись соотносится с файлом - вопрос, зависящий от файловой системы, но та связь, которая тебя интересует, формулируется так: путь_к_файлу = путь_к_читаемой_директории . '/' . запись_в_директории -- Artem Chuprina E-mail: ran@ran.pp.ru Programmer FIDO: 2:5020/371.32 Memonet Ltd. Phone: +7-095-284-1356 --- ifmail v.2.15dev5 * Origin: NTV Internet (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/16483672be7a1.html, оценка из 5, голосов 10
|