Шаг 35.
Доступ к файлу. Запись в файл

    На этом шаге мы рассмотрим способ записи информации в файл.

    Запись в файл, открытый в режиме записи или добавления, осуществляется функцией print() с первым параметром, являющимся дескриптором файла:

    print ДЕСКРИПТОР СПИСОК_ВЫВОДА;

    Эта операция записывает содержимое элементов списка в том порядке, в котором они определены в вызове функции, и не добавляет в конец списка разделителя записей. Об этом должен позаботиться сам программист:

    $/=":";               # Разделитель записей.
    print F1 @recl1, $/;  # Запись в файл первой записи.
    print F1 @recl2, $/;  # Запись в файл второй записи.


    Замечание. Между дескриптором и первым элементом списка вывода не должно быть запятой. Если такое случится, то компилятор Perl выдаст ошибку:
    No comma allowed after filehandle

    Если в функции print не указан дескриптор файла, то по умолчанию вывод осуществляется в стандартный файл вывода с дескриптором STDOUT. Эту установку можно изменить функцией select(). Вызванная без параметров, она возвращает текущий умалчиваемый дескриптор для вывода функциями print() и write(). Если ей передается единственный параметр, то этот параметр должен быть дескриптором файла. В этом случае она также возвращает текущий умалчиваемый дескриптор и меняет его на дескриптор, определенный переданным ей параметром:

    $oldfilehandle = select(F1); # Сохранение текущего дескриптора по
                                 # умолчанию и назначение нового F1.
    print $line;                 # Вывод в дескриптор F1.
    select($oldfilehandle);      # Восстановление старого дескриптора по умолчанию.
    print $line;                 # Вывод в старый дескриптор.

    На следующем шаге мы рассмотрим еще несколько функций, предназначенных для работы с файлами.




Предыдущий шаг Содержание Следующий шаг