Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

gzip / gunzip

by wufnik (Friar)
on Jul 09, 2004 at 23:12 UTC ( [id://373286]=CUFP: print w/replies, xml ) Need Help??

simple gzip & gunzip functionality without nasty "system's" calls. deals with extensions relatively intelligently. illustrates & requires use of Compress::Zlib.
use Compress::Zlib; use strict; foreach my $f ( grep { -f } @ARGV ){ my ($buffer,$gz); if ($f=~/gz$/){ (my $rtf = $f) =~ s/(.)gz$//; open OOT, ">$rtf" or die "$0:$rtf:$!"; binmode OOT; $gz = gzopen($f, "rb") or die "$0:$gzerrno:$!"; print OOT $buffer while $gz->gzread($buffer) > 0; die "$f: $gzerrno:$!" if $gzerrno != Z_STREAM_END; $gz->gzclose(); close(OOT); } else { # gzip our file open COOT, "$f" or die "$0:$f:$!"; binmode COOT; $gz = gzopen("$f.gz", "wb") or die "$0:$gzerrno:$!"; while (<COOT>){ $gz->gzwrite($_) or die "$f.gz,$gzerrno:$!"; } $gz->gzclose; } }

Replies are listed 'Best First'.
Re: gzip / gunzip
by hossman (Prior) on Jul 10, 2004 at 07:58 UTC

    see also the source to Tie::Gzip which demonstrates (un)gzip using Compress::Zlib if installed.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: CUFP [id://373286]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (6)
As of 2024-04-18 03:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found