use warnings; use strict; use Archive::Zip; my $zip = Archive::Zip->new('foo.zip'); my $file_counter = 0; foreach my $member ( $zip->members ) { my $file_name = $member->fileName; my $extracted_file_name = 'file-'. $file_counter++ . '.foo'; print "extracting $file_name as $extracted_file_name\n"; $zip->extractMember($member, $extracted_file_name); }