П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 176898 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 74024 раз(а).

Учебник HTML.
Просмотров 73260 раз(а).

Руководство по PHP5.
Просмотров 44142 раз(а).

Хостинг через призму DNS.
Просмотров 50786 раз(а).

Подборка текстов стандартных документов.
Просмотров 44316 раз(а).

Учебник PHP - Самоучитель
Просмотров 50567 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 50981 раз(а).

Внешние атаки...
Просмотров 41293 раз(а).

Учебник PHP.
Просмотров 36523 раз(а).

SSI в примерах.
Просмотров 27416 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Глава 12: Доступ к каталогам.
12.5 Чтение дескриптора каталога

Открыв дескриптор каталога, мы можем прочитать список имен с помощью функции readdir, которая принимает единственный параметр — дескриптор каталога. Каждый вызов readdir в скалярном контексте возвращает следующее имя файла (только основное имя: в возвращаемом значении никаких косых нет) в порядке, который на первый взгляд кажется случайным*. Если больше имен нет, readdir возвращает undef**. Вызов readdir в списочном контексте возвращает все оставшиеся имена файлов в виде списка с одним именем, приходящимся на каждый элемент. Вот пример, в котором выдается перечень всех имен файлов, содержащихся в каталоге /etc:

opendir(ETC,"/etc") II die "no etc?: $!";
while ($name = readdir(ETC)) { # скалярный контекст, по одному на цикл
 print "$name\n"; #выводит ., .., passwd, group и т.д.
}
closedir(ETC);

А вот как можно получить все имена в алфавитном порядке с помощью функции sort:

opendir(ETC,"/etc") || die "no etc?: $!";
foreach $name (sort readdir(ETC)) { # списочный контекст с сортировкой
  print "$name\n"; #выводит ., .., passwd, group и т.д.
}
closedir(ETC);

В этот список включены имена файлов, которые начинаются с точки. Это не похоже на результат развертывания, выполненного с использованием <*>, при котором имена, начинающиеся с точки, не возвращаются. С другой стороны, это похоже на результат работы команды echo* shell.

* Точнее говоря — это порядок, в котором имена файлов расположены в каталоге, т.е. тот же "беспорядочный порядок", в котором вы получаете файлы в ОС UNIX в результате вызова команды .find или Is -f.

** Это означает, что при работе с опцией -w вам придется использовать цикл while (defined ($name = readdir (...)).

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru