|
Дескрипторы файлов и проверка файлов.
Дескрипторы "по умолчанию": STDIN, STDOUT, STDERR.
Открытие декриптора файла на чтение:
open(ДЕСКРИПТОР,"имя");
Открытие декриптора файла на запись:
open(ДЕСКРИПТОР,">имя");
Открытие декриптора файла на дозапись:
open(ДЕСКРИПТОР,">>имя");
Закрытие декриптора файла:
close(ДЕСКРИПТОР);
Функция die получает список, выводит этот список на STDERR, а затем
завершает PERL-процесс с ненулевым кодом выхода.
open(DATA, ">/tmp/data") || die "Sorry, I couldn't open /tmp/data\n";
Если строке сообщения не использовать символ \n, то к сообщению автоматически
присоединяется имя программы и номер строки.
die "good bye";
die "good bye\n";
Использование переменной $!, содержащей строку последней из ошибок
операционной системы.
open(LOG, ">>logfile") || die "cannot append:$!";
возможное сообщение: cannot append: Permission denied
Чтение строк из файла:
open(EP, "/etc/passwd");
while(<EP>) {
chomp;
print "I saw $_ in the passwdord file!\n";
}
close(EP);
Для записи:
print LOGFILE "Finish!\n";
print STDOUT "Finish!\n";
Копирование данных из файла в файл:
open(IN, $a) || die "cannot open $a for reading: $!";
open(OUT, ">$b") || die "cannot create $b: $!";
while(<IN>) {
print OUT $_;
}
close(IN) || die "cannot close $a: $!";
close(OUT) || die "cannot close $b: $!";
Опреация -e $fele проверяет факт существования файла. Возвращает значения истина
или ложь.
$name = "index.html";
if(-e $name) {
print "I see you already have a file named $name\n";
} else {
print "P3eharps you'd like to make file called $name\n";
}
Операции для проверка файлов.
Обозначение | Описание |
-r | файл или каталог доступен для чтения |
-w | файл или каталог доступен для записи |
-x | файл или каталог доступен для выполнения |
($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime,
$blksize, $bloks) = stat(...);
($uid, &gid) = (stat("/etc/passwd"))[4, 5];
|
|