Perl: эффективная буферизация
Здравствуйте.
Мне нужно на Perl сделать что-то вроде cat, то есть читать бинарные
данные и записывать куда-нибудь. Данных может быть очень много,
поэтому записать их все в память, а потом записать на диск не получится.
Делаю следующее:
syswrite OUT, $str while (sysread SRC, $str, 1_000_000);
если OUT сделать псевдонимом STDOUT и шеллом перенаправить этот STDOUT
в файл, то это работает раз в шесть-семь (!) быстрее, чем когда я явно
открываю OUT через open(). Почему? Я неправильно выбрал размер LENGTH
в sysread? Вообще, как наиболее эффективно организовать прямую передачу
данных в Perl?
Спасибо.
--
Best regards,
Timur Elzhov
Reply to: