#!/usr/bin/perl -w use warnings; use strict; use Archive::Zip qw( :ERROR_CODES ); my @files; @files = ; foreach my $file (@files){ my $zip = Archive::Zip->new(); $zip->read($file) == AZ_OK or die "read error $!"; $zip->endRead($file); $file=~ s{\.[^.]+$}{}; my $m1 = $zip->memberNamed($file); $file=~s/^.{4}//s; $m1->fileName($file); $zip->overwriteAs("$file.zip") == AZ_OK or die "write error $!\n"; } #### #!/usr/bin/perl -w use warnings; use strict; use Archive::Zip qw( :ERROR_CODES ); my @files; @files = ; foreach my $file (@files){ my $zip = Archive::Zip->new(); $zip->read($file) == AZ_OK or die "read error $!"; #$zip->endRead($file); $file=~ s{\.[^.]+$}{}; my $m1 = $zip->memberNamed($file); $file=~s/^.{4}//s; $m1->fileName($file); $m1->endRead(); $zip->overwriteAs("$file.zip") == AZ_OK or die "write error $!\n"; } #### at /usr/share/perl5/Archive/Zip/FileMember.pm line 40 Archive::Zip::FileMember::_openFile('Archive::Zip::ZipFileMember=HASH(0x257b610)') called at /usr/share/perl5/Archive/Zip/FileMember.pm line 30 Archive::Zip::FileMember::fh('Archive::Zip::ZipFileMember=HASH(0x257b610)') called at /usr/share/perl5/Archive/Zip/ZipFileMember.pm line 381 Archive::Zip::ZipFileMember::rewindData('Archive::Zip::ZipFileMember=HASH(0x257b610)') called at /usr/share/perl5/Archive/Zip/Member.pm line 1063 Archive::Zip::Member::_writeToFileHandle('Archive::Zip::ZipFileMember=HASH(0x257b610)', 'IO::File=GLOB(0x257ba60)', 1, 0) called at /usr/share/perl5/Archive/Zip/Archive.pm line 420 Archive::Zip::Archive::writeToFileHandle('Archive::Zip::Archive=HASH(0x242d8f8)', 'IO::File=GLOB(0x257ba60)') called at /usr/share/perl5/Archive/Zip/Archive.pm line 456 Archive::Zip::Archive::overwriteAs('Archive::Zip::Archive=HASH(0x242d8f8)', 'ROUTINGS.D150313.T1600.zip') called at ./ziprenamer2.pl line 17 Can't write to /tmp/2PMKA29PUY.zip at ./ziprenamer2.pl line 17 write error Too many open files