Sample code for 30+ languages & platforms
Perl Requires Chilkat v11.0.0+

Transition from ZipEntry.NextEntry to ZipEntry.GetNext

Provides instructions for replacing deprecated NextEntry method calls with GetNext.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

#  ------------------------------------------------------------------------
#  The NextEntry method is deprecated.
#  See below or code showing how to rewrite using EntryAt/GetNext

$zip = chilkat::CkZip->new();

$success = $zip->OpenZip("qa_data/zips/xml_files.zip");
if ($success != 1) {
    print $zip->lastErrorText() . "\r\n";
    exit;
}

# entry is a ZipEntry
$entry = $zip->FirstEntry();
if ($zip->get_LastMethodSuccess() == 0) {
    print "This zip archive is empty." . "\r\n";
    exit;
}

$finished = 0;
while ($finished == 0) {

    if ($entry->get_IsDirectory() == 0) {
        print $entry->fileName() . "\r\n";
    }
    else {
        print "(directory) " . $entry->fileName() . "\r\n";
    }

    # next is a ZipEntry
    $next = $entry->NextEntry();
    if ($entry->get_LastMethodSuccess() == 0) {
        $finished = 1;
    }

    # entry is a ZipEntry
    $entry = $next;
}

$zip->CloseZip();

print "----" . "\r\n";

#  ------------------------------------------------------------------------
#  Do the equivalent using EntryAt/GetNext.

$success = $zip->OpenZip("qa_data/zips/xml_files.zip");

$ze = chilkat::CkZipEntry->new();
$zip->EntryAt(0,$ze);

$entryValid = 1;
while ($entryValid == 1) {

    if ($ze->get_IsDirectory() == 0) {
        print $ze->fileName() . "\r\n";
    }
    else {
        print "(directory) " . $ze->fileName() . "\r\n";
    }

    $entryValid = $ze->GetNext();
}

$zip->CloseZip();