Операция ввода команды Ни одна программа не может функционировать
сама по себе, не получая и не посылая информацию во внешнюю среду. Perl предоставляет
несколько способов получения программой данных извне и вывода информации из
выполняющегося сценария. В процессе функционирования программы может потребоваться
выполнить некоторую команду операционной системы и проанализировать результаты
ее выполнения, прочитать данные из внешнего файла или группы файлов, записать
результаты вычислений во внешний файл или отобразить их на экране монитора —
все эти действия реализуются разнообразными операциями и функциями языка Perl.
Простейшее взаимодействие с операционной
системой, в которой выполняется программа Perl, реализуется операцией заключения
строки данных в обратные кавычки. Содержимое такой строки передается на выполнение
операционной системы, которая возвращает результат выполнения команды в эту
же строку. Для чтения из файла используется
операция "ромб" о, которой в качестве операнда передается дескриптор
файла. В этой главе мы не будем обсуждать ввод из файла через его дескриптор,
отнеся рассмотрение этого вопроса в следующую главу, полностью посвященную работе
с файлами. Здесь мы расскажем о том, как работает операция "ромб"
в случае отсутствия операнда, представляющего дескриптор файла. В этом случае
эта операция может читать записи из стандартного файла ввода STDIN или получать
информацию, передаваемую программе через командную строку. Для отображения в стандартный файл
вывода STDOUT используется уже знакомая нам функция print, которая, однако,
может выводить информацию и в файл, определенный своим дескриптором. Заключенная в обратные кавычки
"•"• строка символов является всего лишь удобной формой записи операции
ввода команды операционной системы qx{}, с которой мы уже знакомы (см. часть
4). Хотим обратить внимание читателя
еще раз на тот факт, что операция ввода команды возвращает вывод на стандартное
устройство вывода операционной системы. При выполнении команды можно направить
ее вывод на другое устройство, например, в файл. Для этого в строке после имени
команды и всех необходимых для ее выполнения параметров следует задать символ
">", после которого ввести имя файла. В этом случае на экран монитора
ничего выводиться не будет, а следовательно и ничего не будет возвращаться в
псевдолитерал, т. е. после выполнения такой команды псевдолитерал будет содержать
неопределенное значение (пример 6.3).
$list = 'dir >file.dat~; # Вывод осуществляется в файл file.dat print $list;
# Оператор ничего не напечатает! Поделитесь этой записью или добавьте в закладки | Полезные публикации |