Perl - специальный справочник


           

Perl. Специальный справочник - стр. 172


autoflush дескриптор выражение

Чтение файлов, переданных через командную строку

Имена файлов, стоящие после имени сценария в командной строке, передаются коду в качестве потока ввода:

% printem file1.txt file2.txt

Если после этой команды обратиться к STDIN, то вместо ввода с консоли (клавиатуры) мы получим объедиенное содержимое файлов file1.txt и file2.txt:

while (<>) {

print;

}

Here is

a

file!

Here is

another

file!

Чтение из дескриптора файла

Выражение вида <дескриптор> возвращает следующую строчку, считанную из файла. Это полезно, когда надо прочитать открытый файл. Например, следующий фрагмент кода читает весь текст из файла file.txt:

open (FILEHANDLE, "<file.txt")

or die ("Cannot open file file.txt");

while (<FILEHANDLE>) {

print;

}

Here

is

a

file!

Если дескриптор файла не указан, используется STDIN.

read — чтение входных данных

Функция read читает данные из дескриптора файла:

read дескриптор, скаляр, длина, смещение

read дескриптор, скаляр, длина

(Обратите внимание: функция read не является парной для функции write!)

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

Параметр смещение (если он задан) указывает, с какой позиции от начала скаляра (строки) надо размещать считанные байты. Если он не задан или равен нулю, то скалярной переменной присваивается значение-строка, считанная из файла, а прежнее содержимое переменной теряется. Если же задано смещение, то текущим значением скалярной переменной должна быть текстовая строка, от которой берется несколько первых байтов, к ним добавляются байты, считанные из файла, и все запоминается в качестве нового значения переменной. Поэтому длина строки может уменьшиться или увеличиться. Если текущее значение скаляра не является текстовой строкой, оно преобразуется к формату текстовой строки, — например, число 123.45 в строку "123.45". Если текущая длина строки меньше указанного смещения, она дополняется двоичными нулями. (Для экспериментальной проверки полезно воспользоваться функцией vec из главы 10.)




Содержание  Назад  Вперед