#!/usr/bin/perl use Storable qw(nstore_fd fd_retrieve); use IO::Zlib; use Data::Dumper; my $test = { foo => "bar" }; my $fh = IO::Zlib->new("out.gz", "wb"); nstore_fd($test, $fh); $fh->close; my $fh2 = IO::Zlib->new("out.gz", "rb"); my $href = fd_retrieve($fh2); $fh2->close; print Dumper $href; #### perl -MIO::Zlib -e '$fh = IO::Zlib->new("test.gz", "wb"); print fileno($fh)' #### sub AUTOLOAD { print "AUTOLOAD(@_)\n"; my $self = shift; print $self, " $AUTOLOAD\n@{[caller]}\n"; $AUTOLOAD =~ s/.*:://; $AUTOLOAD =~ tr/a-z/A-Z/; return tied(*{$self})->$AUTOLOAD(@_); } #### $ perl -MIO::Zlib -e '$fh = IO::Zlib->new("test.gz", "wb"); print fileno($fh)' AUTOLOAD(IO::Zlib=HASH(0x81e8b30)) IO::Zlib=HASH(0x81e8b30) IO::Zlib::FILENO main -e 1 Not a GLOB reference at /usr/lib/perl5/site_perl/5.8.0/IO/Zlib.pm line 566. #### $ perl -MIO::Zlib -e '$fh = IO::Zlib->new("test.gz", "wb"); print $fh->fileno' AUTOLOAD(IO::Zlib=GLOB(0x8124538)) IO::Zlib=GLOB(0x8124538) IO::Zlib::fileno main -e 1 AUTOLOAD(IO::Zlib=HASH(0x81e8b3c)) IO::Zlib=HASH(0x81e8b3c) IO::Zlib::ILENO IO::Zlib /usr/lib/perl5/site_perl/5.8.0/IO/Zlib.pm 566 Not a GLOB reference at /usr/lib/perl5/site_perl/5.8.0/IO/Zlib.pm line 566.