Power Perl Education главная страница возможности Power Guest Book темы оформления настройка скрипта FAQ Download благодарности

Доступ к каталогам.

Доступ к каталогам.

Пример:
chdir("/etc") || die "cannot cd to /etc ($!)";
print "where do you want to go? ";
chomp($where = <STDIN>);
if(chdir $where) {
	# OK
} else {
	# NOT
}

Развертывание.

Преобразование аргументов вроде * или /etc/host* - в список имен файлов называется развертыванием (globbing). В PERL подлежащий развертыванию образец заключается в угловые скобки или используется функция glob().
@a = </etc/host*>
@a = glob("/etc/host*");
В списочном контексте результатом является список, в скалярном - следущее совпадаущее имя.
while(defined($nextname = </etc/host*>)) {
	print "one of the files is $nextname\n";
}
В аргументе glob производится интерполяция:
if(-d "/usr/etc") {
	$where = "/usr/etc";
} else {
	$where = "/etc";
}
@files = <$where/*>

Открытие и закрытие дескриптора каталога.

opendir(ETC, "/etc") || die "cannot opendir /etc:$!";

closedir(ETC);

Чтение дескриптора каталога.

Используется вызов readdir, который возвращает следующее имя файла или undef
opendir(ETC, "/etc") || die "cannot opendir /etc:$!";
while(defined($name = readdir(ETC))) {
	print "$name\n";
}
closedir(ETC);
Или в отсортированном порядке
opendir(ETC, "/etc") || die "cannot opendir /etc:$!";
foreach $name (sort readdir(ETC)) {
	print "$name\n";
}
closedir(ETC);

Наши партнёры:
Каталог продукции ООО ВС Подшипник. Информация и прайс.
Советы и примеры - ремонтируем самостоятельно
Для вас Кулинарная книга, рецепты на каждый день.
Дамский уголок - внешность, здоровье, советы и консультации.


Copyright © ClericICN, 2002 - 2009