На этом шаге мы рассмотрим способ записи информации в файл.
Запись в файл, открытый в режиме записи или добавления, осуществляется функцией print() с первым параметром, являющимся дескриптором файла:
print ДЕСКРИПТОР СПИСОК_ВЫВОДА;
Эта операция записывает содержимое элементов списка в том порядке, в котором они определены в вызове функции, и не добавляет в конец списка разделителя записей. Об этом должен позаботиться сам программист:
$/=":"; # Разделитель записей. print F1 @recl1, $/; # Запись в файл первой записи. print F1 @recl2, $/; # Запись в файл второй записи.
No comma allowed after filehandle
Если в функции print не указан дескриптор файла, то по умолчанию вывод осуществляется в стандартный файл вывода с дескриптором STDOUT. Эту установку можно изменить функцией select(). Вызванная без параметров, она возвращает текущий умалчиваемый дескриптор для вывода функциями print() и write(). Если ей передается единственный параметр, то этот параметр должен быть дескриптором файла. В этом случае она также возвращает текущий умалчиваемый дескриптор и меняет его на дескриптор, определенный переданным ей параметром:
$oldfilehandle = select(F1); # Сохранение текущего дескриптора по # умолчанию и назначение нового F1. print $line; # Вывод в дескриптор F1. select($oldfilehandle); # Восстановление старого дескриптора по умолчанию. print $line; # Вывод в старый дескриптор.
На следующем шаге мы рассмотрим еще несколько функций, предназначенных для работы с файлами.