in reply to Re^2: unzip fail using IO::Uncompress::Unzip
in thread unzip fail using IO::Uncompress::Unzip

"unzip failed: input file '730372_Atoll.zip' does not exist"
That looks like a directory problem. Remember that readdir only returns the file name, not the a complete path to the file. You need "$zipdir/730372_Atoll.zip" otherwise the .zip file is expected in the current directory wherever the Perl script is running. You could add the full file path instead of just the file names from readdir into @zd array by using map:
my @zd = grep {!-d}map{"$zipdir/$_"}readdir(ZIPPED);

I looked at IO::Uncompress::Unzip I suspect that you are using the wrong tool. If you unzip $inref => $outref and my $inref = \@zd;, that is fine. However, your assignment of filenames to the output arrary ref is meaningless. see Notes:

When $input_filename_or_reference maps to multiple compressed files/buffers and $output_filename_or_reference is a single file/buffer, after uncompression $output_filename_or_reference will contain a concatenation of all the uncompressed data from each of the input files/buffers.
You will just get a bunch of concatenated junk in @uzd.

Try reading Archive::Extract and look at Re: Archive::Zip for unzipping to directory?

Try writing some code that just extracts one .zip file using a hard coded name and puts the contents where you want it, then work on making a loop with varying dir contents.