[sisyphus] Re: Q: PerlIO::via::gzip
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Сб Апр 24 10:17:19 MSD 2004
On Thu, Apr 22, 2004 at 09:57:09AM +0400, Alex Ott wrote:
> >> А в перле кто-нибудь разбирается? Нарисовал тут.
> >> Смотрю на это и думаю: ы?
> >>
> >> package PerlIO::via::gzip;
> Вопрос неправильно сформулирован -- правильный вопрос -- "зачем
> изобретать велосипед, когда есть PerlIO::gzip и Tie::Gzip?" ;-)
Да (более того, вопрос вообще не сформулирован, если не считать
формулировку "ы" синонимом "для тех, кто понял").
Дело в том, что PerlIO::gzip -- это бинарная привязка к zlib
(частный случай), а Tie::Gzip -- это та же обертка над Compress::Zlib,
которая суть общий случай привязки к zlib.
Недостатки PerlIO::gzip легко отыскивается в README:
Compression and Decompression are implemented, but not together.
If you attempt to open a file for reading and writing the open
will fail.
Threads - Currenly this module isn't threadsafe as it can't clone an open layer.
flush() doesn't really flush, just empty the buffer.
Т.е. это Николас Кларк как раз и изобрел велосипед, не велосипед даже,
а так... костыль с колесом. В мандраке этот костыль с колесом
прикрутили в pp_ctl.c, см. Cooker-SPECS/perl/perl-5.8.0-use_gzip_layer.patch
Т.е. через PerlIO привязку сделать проще и веселее (stacked и т.д.).
Только почему-то никто не делает...
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20040424/405182e2/attachment-0003.bin>
Подробная информация о списке рассылки Sisyphus