Изучаем Perl
5c8b6e8c

Чтение дескриптора каталога Открыв


opendir(ETC,"/etc") II die "no etc?: $!";

while ($name = readdir(ETC)) f t скалярный контекст, по одному на цикл

print "$name\n"; #выводит ., .., passwd, group и т.д. 1 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 (...)).



Содержание раздела