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



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


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.)


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





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