[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