Cleaing up for production release
[archive-zip.git] / lib / Archive / Zip / FileMember.pm
blob315ac0fbe42ebf603bed053452d198f8cf498e0a
1 package Archive::Zip::FileMember;
3 use strict;
4 use vars qw( $VERSION @ISA );
6 BEGIN {
7 $VERSION = '1.28';
8 @ISA = qw ( Archive::Zip::Member );
11 use Archive::Zip qw(
12 :UTILITY_METHODS
15 sub externalFileName {
16 shift->{'externalFileName'};
19 # Return true if I depend on the named file
20 sub _usesFileNamed {
21 my $self = shift;
22 my $fileName = shift;
23 my $xfn = $self->externalFileName();
24 return undef if ref($xfn);
25 return $xfn eq $fileName;
28 sub fh {
29 my $self = shift;
30 $self->_openFile()
31 if !defined( $self->{'fh'} ) || !$self->{'fh'}->opened();
32 return $self->{'fh'};
35 # opens my file handle from my file name
36 sub _openFile {
37 my $self = shift;
38 my ( $status, $fh ) = _newFileHandle( $self->externalFileName(), 'r' );
39 if ( !$status ) {
40 _ioError( "Can't open", $self->externalFileName() );
41 return undef;
43 $self->{'fh'} = $fh;
44 _binmode($fh);
45 return $fh;
48 # Make sure I close my file handle
49 sub endRead {
50 my $self = shift;
51 undef $self->{'fh'}; # _closeFile();
52 return $self->SUPER::endRead(@_);
55 sub _become {
56 my $self = shift;
57 my $newClass = shift;
58 return $self if ref($self) eq $newClass;
59 delete( $self->{'externalFileName'} );
60 delete( $self->{'fh'} );
61 return $self->SUPER::_become($newClass);