To summarize the problem (which I gather you haven't figured out yet)... Here's your code that causes the error:
$zip->extractMemberWithoutPaths($y,"Y:\\autoupload\\Site_Dict\\Inbox\\
+"."$y");
And here's the error report that you say it generates:
mkdir AFCUArchive::Zip::.: Invalid argument [somewhere in Archive::Zip
+]
(which frankly doesn't look like what I would expect, but I suppose it's plausible enough). And here's the relevant part of the Archive::Zip man page (you did read this part, didn't you?):
extractMemberWithoutPaths( $memberOrName [, $extractedName ] )
Extract the given member, or match its name and extract it. Does
not use path information (extracts into the current directory).
Returns undef if member doesn't exist in this Zip. If optional
second arg is given, use it as the name of the extracted member
(its paths will be deleted too)...
From reading the man page, I would conclude that you are not supposed to try to specify a path for output as (part of) an arg being passed to this method. Instead, you would want to do something like this:
# read the zip file into $zip, then
chdir $path_where_data_should_go or
die "Can't get to $path_where_data_should_go: $!";
for my $mbr ( $zip->members ) {
$zip->extractMemberWithoutPaths( $mbr );
}
|