mikeock has asked for the wisdom of the Perl Monks concerning the following question:
#!/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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Error with Archive::zip
by TedPride (Priest) on Dec 14, 2005 at 03:37 UTC | |
by PodMaster (Abbot) on Dec 14, 2005 at 08:10 UTC |