Использование файловых дескрипторов

Когда файловый дескриптор будет открыт для чтения, чтение строк из него осуществляется практически так же, как чтение из стандартного ввода с дескриптором STDIN. Например, чтение строк из файла паролей UNIX происходит так:

if ( ! open PASSWD, "/etc/passwd") {
die "How did you get logged in? ($!)";
}
while () {
chomp;
...
}

В этом примере в сообщении die переменная $! заключена в круглые скобки. Это всего лишь литеральные символы, в которых выводится сообщение в выходных данных. (Иногда в Perl знак препинания – это просто знак препинания.) Как видите, то, что мы называли «оператором построчного вывода», в действительности состоит из двух компонентов: угловых скобок (собственно оператор построчного ввода) и заключенного в них файлового дескриптора. Файловый дескриптор, открытый для записи или присоединения, может использоваться с функцией print или printf. Он указывается сразу же после ключевого слова, но перед списком аргументов:

print LOG "Captain's log, stardate 3.14159\n"; # Ввыод направляется в LOG
printf STDERR "%d percent complete.\n", $done/$total * 100;

Вы заметили, что между дескриптором и выводимыми элементами нет запятой? С круглыми скобками это выглядит особенно странно. Обе следующие формы верны:

printf (STDERR "%d percent complete.\n", $done/$total * 100);
printf STDERR ("%d percent complete.\n", $done/$total * 100);

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Аргументы вызова
Ввод данных оператором <>
Вывод функцией say
Закрытие файлового дескриптора
Запись данных в стандартный вывод

Вернуться в раздел: Perl / 4. Ввод и вывод