Функции stat и lstat.
($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $bloks) = stat(...);
($uid, &gid) = (stat("/etc/passwd"))[4, 5];
Функция die.
Функция 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"; }