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 и т.д.). Только почему-то никто не делает...