Оператор print можно применять для записи данных в файл или в стандартный поток вывода. Имена дескрипторов файлов указываются после ключевого слова print перед выводимыми данными. Если дескрипторы файлов не заданы, оператор print помещает данные в стандартный поток вывода. В следующих двух примерах строка «hello» передается на стандартное устройство вывода. Дескриптор файла для стандартного вывода — STDOUT. При отсутствии аргумента оператор print выводит данные, которые считаны из стандартного ввода.
print STDOUT "hello";
print "hello";
Дескрипторы файлов Perl. Для создания дескриптора файла или канала предназначен оператор open. Этот оператор имеет два аргумента: имя создаваемого дескриптора файла и имя файла. Имя дескриптора принято вводить в верхнем регистре. В качестве второго аргумента может выступать не только имя файла, но и имя переменной, содержащей название файла. Также указываются различные режимы открытия файла. По умолчанию файл открывается для чтения, но его также можно открыть для записи, для добавления данных либо для выполнения обеих операций. Ниже приведен пример синтаксиса оператора open:
open (дескриптор-файла, строка-имени-файла);
В следующем примере пользователь открывает файл reports с дескриптором REPS:
open (REPS, "reports");
Довольно часто имя файла является значением переменной. Для обозначения файла в этом случае употребляются символ $ и имя переменной. В следующем примере имя файла «reports» содержится в переменной filen:
$filen = "reports";
open (REPS, $filen );
Чтобы открыть файл в определенном режиме, необходимо предварить имя файла соответствующими символами. Эти два компонента разделяются пробелом. Так, символ > употребляется, если файл должен быть открыт для записи, а символ +> — для чтения и записи. В следующем примере задано открытие файла reports для чтения и записи.
open (REPS, "+> reports");
Если для хранения имени файла используется переменная, то эта же переменная применяется для задания имени файла, как показано ниже:
open (REPS, "+> $filen");
Чтобы прочитать информацию из открытого файла, нужно указать его дескриптор между символами < и >. Дескриптор <REPS> употребляется для считывания строки из файла reports. Программа myreport открывает файл reports и выводит его содержимое на экран.