in reply to Re^5: Creating a .zip file using perl
in thread Creating a .zip file using perl

wind is correct in that $_ is not initialized, readdir does not assign to $_ by default and so the readdir should be assigned to $_ directly.
while ($_ = readdir( $dh)) {
Then the script will work correctly.

print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."

Replies are listed 'Best First'.
Re^7: Creating a .zip file using perl
by Anonymous Monk on May 05, 2011 at 08:47 UTC

    Thanks monks.zip file is getting created but with no data all..i dont see any .lib files in there,there still seems to be a bug.can someone run the below code on a sample directory with libs and see if the zip contains .libs.Please help

    use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); use File::Spec; use strict; use warnings; my $zipfile = shift or die "What's the zipfile?"; my $dir = shift or die "Where's the dir?"; my $zip = Archive::Zip->new(); opendir my $dh, $dir or die $!; print "\nDIR:$dir"; while ($_ = readdir( $dh)) { next if !/\.lib$/; $zip->addFile(File::Spec->catfile($dir, $_), $_); } closedir $dh; # Save the Zip file unless ( $zip->writeToFileNamed($zipfile) == AZ_OK ) { die 'write error'; }
      Eh, I tested that and it works correctly, are there any files ending in .lib in the directory you are interested in (are you looking to check subdirectories or something else that you haven't mentioned?)

      print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."

        I need to search recursively through subdirectories and then zip,not just in the current directory.Please help