/usr/share/doc/perl-Archive-Zip/examples
NameSizeModeActions
calcSizes.pl9480644editdlrm
copy.pl4520644editdlrm
extract.pl8960644editdlrm
mailZip.pl16130644editdlrm
mfh.pl6400644editdlrm
readScalar.pl7500644editdlrm
selfex.pl15690644editdlrm
unzipAll.pl5610644editdlrm
updateTree.pl8220644editdlrm
updateZip.pl8920644editdlrm
writeScalar.pl6140644editdlrm
writeScalar2.pl6130644editdlrm
zip.pl6660644editdlrm
zipcheck.pl10100644editdlrm
zipGrep.pl14510644editdlrm
zipinfo.pl44660644editdlrm
ziprecent.pl77060644editdlrm
ziptest.pl18010644editdlrm
Edit: /usr/share/doc/perl-Archive-Zip/examples/zipcheck.pl (1010B)
#!/usr/bin/perl -w # usage: valid zipname.zip # exits with non-zero status if invalid zip # status = 1: invalid arguments # status = 2: generic error somewhere # status = 3: format error # status = 4: IO error use strict; use Archive::Zip qw(:ERROR_CODES); use IO::Handle; use File::Spec; # instead of stack dump: Archive::Zip::setErrorHandler(sub { warn shift() }); my $nullFileName = File::Spec->devnull(); my $zip = Archive::Zip->new(); my $zipName = shift(@ARGV) || exit 1; eval { my $status = $zip->read($zipName); exit $status if $status != AZ_OK; }; if ($@) { warn 'error reading zip:', $@, "\n"; exit 2 } eval { foreach my $member ($zip->members) { my $fh = IO::File->new(); $fh->open(">$nullFileName") || die "can't open $nullFileName\: $!\n"; my $status = $member->extractToFileHandle($fh); if ($status != AZ_OK) { warn "Extracting ", $member->fileName(), " from $zipName failed\n"; exit $status; } } }