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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Глава 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