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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




Глава 13: Манипулирование файлами и каталогами
13.1 Удаление файла

Вы уже научились создавать в Perl файл, открывая его для вывода через дескриптор файла. Сейчас ми освоим опасную процедуру удаления файлов (очень кстати для тринадцатой глави, не правда ли?).

Perl-функция unlink (названная по имени системного вызова POSIX) удаляет одно из имен файла (которнй может иметь и другие имена). Когда удаляется последнее имя файла и ни в одном процессе он не открыт, удаляется и сам файл. Это в точности соответствует тому, что делает UNIX-команда rm. Поскольку у файла часто бывает только одно имя (если ви не создавали жесткие сснлки), то в большинстве случаев удаление имени можно считать удалением файла. Приняв это допущенне, покажем, как удалить файл fred, а затем удалить файл, имя которого вводится во время выполнения программы:

unlink ("fred"); # распрощаемся с файлом fred print "what file do you want to delete?";
chomp($name = <STDIN>);
unlink($name);

Функция unlink может принимать также список имен, подлежащих удалению:

unlink ("cowbird","starling"); # убьем двух зайцев unlink
<*.о>; # как "rm *.o" в shell

Операция <*.o> выполняется в списочном контексте и создает список имен файлов, которые совпадают с образцом. Это именно то, что нужно передать в unlink.

Функция unlink возвращает количество успешно удаленных файлов. Если указан только один аргумент и соответствующий ему файл удаляется, то возвращается единица; в противном случае возвращается нуль. Если заданы имена трех файлов, но удалить можно только два, то возвращается два. Установить, какие именно файлы были удалены, на оснований возвра-щенного значения невозможно, поэтому если вам нужно определить, какой файл не удален, удаляйте их по одному. Вот как производится удаление всех обьектных файлов (имена которых заканчиваются на .о) с выдачей сообще-ния об ошибке для каждого файла, который удалить нельзя:

foreach $file (<*.o>) { # пройти по списку .о-файлов
  unlink($file) || warn "having trouble deleting $file: $!";
}

Если unlink возвращает 1 (это означает, что единственный указанный файл был удален), то функция warn пропускается. Если имя файла не может быть удалено, результат "О" означает "ложь", поэтому warn выполняется. Абстрактно это можно прочитать так: "удали этот файл или сообщи мне о нем".

Если функция unlink дается без аргументов, то по умолчанию вновь используетея переменная $_. Так, приведеними выше цикл можно записать следующим образом:

foreach (<*.о>) { # пройти по списку .о-файлов
  unlink || warn "having trouble deleting $_: $!";
}

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



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





Copyright © 2005-2016 Project.Net.Ru