#!/usr/bin/perl -w use strict; use Archive::Zip qw( :ERROR_CODES :CONSTANTS ) my $zip = Archive::Zip->new(); foreach(@_){ next unless($_ =~ m/(zip)$/); print "$_\n"; die "Error reading zip file" if $zip->read($_) != AZ_OK; my @members = $zip->members(); $zip->extractMember("bootuplog.txt"); foreach my $element(@members){ $zip->extractMember($element->{fileName}); } } print "Done extracting files"; } }
@_ is a list of files returned from a glob in another subroutine.
When running the code above I get the following errors(F.Y.I. Displayed 3 times due to the the 3 files in the zip that is opening.)
2005 Dec-13 08-54.zip Use of uninitialized value in concatenation (.) or string at C:/Perl/l +ib/File/Sp ec/Win32.pm line 291. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 68. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 69. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 67. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 67. Use of uninitialized value in concatenation (.) or string at C:/Perl/l +ib/File/Sp ec/Win32.pm line 291. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 67. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 67. Use of uninitialized value in concatenation (.) or string at C:/Perl/l +ib/File/Sp ec/Win32.pm line 291. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 67. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 67. Use of uninitialized value in concatenation (.) or string at C:/Perl/l +ib/File/Sp ec/Win32.pm line 291. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 67. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in integer multiplication (*) at C:/Perl/li +b/Time/Loc al.pm line 76. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in pack at C:/Perl/lib/Time/Local.pm line 6 +7. Use of uninitialized value in integer addition (+) at C:/Perl/lib/Time +/Local.pm line 67.
Anyone have any ideas? Should I just disabled warnings? <- the reason I ask this is the files do extract, but the errors listed above are always present.
Thanks in Advance!
Edit: Fixed? Changed #!/usr/bin/perl -w to#!/usr/bin/perl use warnings;
also changed $zip->extractMember($element->{fileName}); to $zip->extractMember($element);
Also Added no warnings to right before the last foreach loop
In reply to Error with Archive::zip by mikeock
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |