Xpoint
   [напомнить пароль]

PerlIO

Интерфейс ввода вывода Perl

:unix
Низкоуровневый интерфейс определяющий базовые операции PerlIO в терминах UNIX/POSIX
(open(), read(), write(), lseek(), close()).

:stdio
Интерфейс используемый fread/fwrite, fseek/ftell и т.д.
Этот интерфейс (подобно "настоящему" stdio) игнорирует любые другие интерфейсы обращаясь напрямую к операционной системе

:perlio
Интерфейс быстрого прямого доступа к буферу функции sv_gets, отвечающей за реализацию операторов <> и readline(), что позволяет минимизировать расход памяти.
:perlio использует интерфейс :unix для осуществления низкоуровневых операций.

:crlf
Интерфейс преобразования DOS/Windows окончаний строк. При чтении происходит автоматическая замена пары CR,LF в одиночное окончание строки "\n". При записи выполняется обратная замена "\n" на пару CR,LF. В отличии от MS-DOS комбинация Control-Z не используется в качестве маркера конца файла.

_:crlf игнорирует попытки многократных вызовов не выдавая предупреждений. Процесс загрузки прерывается, если при проверке стека интерфейсов обнаруживается использование :crlf в качестве интерфейса низкого уровня. В этом случае преобразование происходит на самом низком уровне и вызовы на других уровнях игнорируются.

Логика загрузки подразумевает первоочередное использование уже загруженного интерфейса и собственно загрузку, если таковой не найден._

:mmap
Интерфейс обеспечивает "чтение" файла функцией mmap(), что делает его доступным в адресном пространстве процесса и позволяет использовать его в качестве "буфера" PerlIO.
Это ускоряет работу с большими файлами и позволяет экономней использовать оперативную память при множественных запросах исполняемых процессов к одному файлу.

Для чтения файлов не поддерживаемых функцией mmap(), а также для записи файлов (использующей дополнительный файл) эмулируется интерфейс подобный :perlio, что может свести на нет все преимущества этого интерфейса.

Интерфейс :mmap не включается в сборку на платформах не поддерживающих функции mmap()

:utf8
Устанавливает кодировку символов в потоках ввода/вывода Perl (UTF-8 на платформе ASCII или UTF-EBCDIC на платформе EBCDIC). Это позволяет Perl читать и записывать любые символы в потоках ввода/вывода.

Этот пример демонстрирует запись и чтение данных в кодировке UTF-8 (или UTF-EBCDIC).

open(F, ">:utf8", "data.utf");
print F $out;
close(F);

open(F, "<:utf8", "data.utf");
$in = <F>;
close(F);

:bytes
Интерфейс обратный по значению :utf8. Предполагает поступление данных в виде "октетов" (символов со значением от 0 до 255) и включает выдачу предупреждений при обнаружении "инородных" символов (не входящих в указанный диапазон значений).

:raw

Устанавливает бинарный режим данных в потоке (аналогично binmode()), при этом поток остается буферизированным.

В Perl 5.6 и некоторых книгах :raw называют интерфейсом (иногда "дисциплиной") обратным по значению :crlf.

Powered by POEM™ Engine Copyright © 2002-2005