Операции ввода/вывода
Для взаимодействия и общения с внешним окружением в любом языке программирования предусмотрены операции ввода/вывода. Perl не является исключением. В нем определен ряд операций, обеспечивающих ввод и вывод данных в/из программы.
Операция print
С этой операцией вывода мы уже немного знакомы. Операция print – унарная операция, правым операндом которой служит задаваемый список значений, которые она отображает по умолчанию на экране монитора. Операцию, операндом которой является список, называют списковой операцией. Внешне ее можно задать как вызов функции, заключив ее операнд в круглые скобки. Следующие операции эквивалентны:
print "@m", "\n", $m, "\n"; print("@m", "\n", $m, "\n");
(Более подробно эта операция рассматривается в части 6.)
Выполнение системных команд
Операция заключения в обратные кавычки – это специальная операция, которая передает свое содержимое на выполнение операционной системы и возвращает результат в виде строковых данных:
$command = ~dir"; # Переменная $command после выполнения операционной # системой команда содержит результат ее # выполнения.
Содержимое строкового литерала в обратных кавычках должно быть, после подстановки значений переменных, которые могут в нем присутствовать, правильной командой операционной системы.
(Более подробно эта операция рассматривается в части 6.)
Операция <>
При открытии файла с помощью функции open () одним из ее параметров является идентификатор, называемый дескриптором файла, с помощью которого можно в программе Perl ссылаться на файл. Операция ввода из файла осуществляется заключением в угловые скобки его дескриптора <дескриптор_файла>. Результатом вычисления этой операции является строка файла или строки файла в зависимости от скалярного или спискового контекста ее использования. Следующие операторы иллюстрируют эту особенность данной операции:
open(MYFILE, "data.dat"); # Открытие файла "data.dat" и назначение ему # дескриптора MYFILE
$firstline = <MYFILE>; # Присваивание первой строки файла @remainder = <MYFILE>; # Оставшиеся строки файла присваиваются # элементам массива скаляров.
Дескриптор файла можно использовать и в операции print, организуя вывод не на стандартное устройство вывода, а в файл, представляемый дескриптором:
print MYFILE @m;
Особый случай представляет операция чтения из файла с пустым дескриптором о: информация считывается либо из стандартного файла ввода, либо из файлов, заданных в командной строке.
(Более подробно операции ввода/вывода из/в файл рассматриваются в части 6.)
(Работа с файлами более подробно рассматривается в части 7.)