IO::Compress::Gzip la doc sur CPAN est complexe mais claire, ce n'est pas fait que pour compresser un fichier:
Code :
use IO::Compress::Gzip; ............................... my $compressed; my $zipper = IO::Compress::Gzip->new(\$compressed); # buffer destination a passer par référence $zipper->print($data); #$data contient les données à compresser $zipper->close(); # a ce stade $compressed contient les données zippées
|
C'est un exemple minimal (mais testé et qui marche); si on veut donner un nom aux données dans l'archive, on fera
my $zipper = IO::Compress::Gzip->new(\$compressed, {Name => "test.txt"});
et en plus de name, on a tout un tas de paramétrages possible.
En mode append, on peut faire des $zipper->print($data); successifs avec data changé a chaque étape, etc
Bref, IO::Compress::Gzip permet un contrôle extrêmement fin de ce que l'on fait.
Le code complet qui m'a servi a tester:
Code :
#!/usr/bin/perl -w use strict; use warnings; use IO::Compress::Gzip; my $data = "hello World!"; my $compressed; my $z = IO::Compress::Gzip->new(\$compressed, {Name => "test.txt"}); $z->print($data); $z->close(); #le reste est un test pour vérification avec winzip my $out; open ($out, '>', "test.gz" );
|
A+,
Message édité par gilou le 27-11-2009 à 03:51:17
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --