Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Persistence of a filehandle for a large file with varying formats

by pmqs (Monk)
on Jan 25, 2013 at 13:39 UTC ( #1015349=note: print w/replies, xml ) Need Help??


in reply to Persistence of a filehandle for a large file with varying formats

IO::Uncompress::Gunzip gives you a filehandle interface to a gzip file
my $fh = new IO::Uncompress::Gunzip "input file", or die "Cannot open file ..." ; my $line = <$fh> ;
It also has the ability to assume the input file is uncompressed if the input data isn't a gzipped at all. To enable that mode just give it the Transparent option like this
my $fh = new IO::Uncompress::Gunzip "input file", Transparent => 1 or die "Cannot open file ..." ; my $line = <$fh> ;

That will give you a filehandle that can read from either a gzip compressed file or uncompressed input file.

One limitation of IO::Uncompress::Gunzip is that it doesn't allow you to seek backwards in a file. If you have a requirement to be able to rewind the input file you will have to reopen the file again. Perhaps something like this (untested)

sub rewind { $_[0]->close(); $_[0] = new new IO::Uncompress::Gunzip $_[1], Transparent => 1 or die "Cannot open file ..." ; } rewind($fh, "somefile");

Replies are listed 'Best First'.
Re^2: Persistence of a filehandle for a large file with varying formats
by seaver (Pilgrim) on Jan 25, 2013 at 17:31 UTC

    Well there you have it, a straight forward answer, I'll test this now. Thank you!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1015349]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (6)
As of 2016-12-06 09:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (101 votes). Check out past polls.