http://www.perlmonks.org?node_id=426698


in reply to finding file in a zip file

You have your .*$file in single quotes, which means the variable isn't being interpolated, so it's looking for a file that matches zero or more of anything, followed by the dollar sign, followed by the word file. Try changing those to double quotes, and that part will work fine.

As for the rest... The extractToFileNamed() method works on the return values of membersMatching, and not on strings. You probably want something like:

foreach my $archived_file (@files) { $archived_file->extractToFileNamed('some_file_name') or die "Unable to extract data file $! ."; }

Also, $#files gives you the index of the last element, not the number of elements in the array. For that you want my $numfiles = @files