use strict; use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); my $zip = Archive::Zip->new(); unless ($zip->read('/home/mohamad/Desktop/VM/vm.zip') == AZ_OK ){ die 'read error'; } my @files = $zip->memberNames(); print join("\n" , @files) ."\n"; #### at /usr/share/perl5/Archive/Zip.pm line 477. Archive::Zip::_readSignature('IO::File=GLOB(0xb75ae8)', '/home/mohamad/Desktop/VM/vm.zip') called at /usr/share/perl5/Archive/Zip/Archive.pm line 603 Archive::Zip::Archive::readFromFileHandle('Archive::Zip::Archive=HASH(0xb75c20)', 'IO::File=GLOB(0xb75ae8)', '/home/mohamad/Desktop/VM/vm.zip') called at /usr/share/perl5/Archive/Zip/Archive.pm line 548 Archive::Zip::Archive::read('Archive::Zip::Archive=HASH(0xb75c20)', '/home/mohamad/Desktop/VM/vm.zip') called at test.pm line 6 read error at test.pm line 7.