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


in reply to Re^2: help with unraring
in thread help with unraring

is that a multipart file you are trying to extract? you can safely ignore this message;it merely says that the file has been already processed.It is used for caching purposes

Replies are listed 'Best First'.
Re^4: help with unraring
by gautamparimoo (Beadle) on Apr 25, 2012 at 05:39 UTC

    yes it is a multipart file. But the archive is not extracted to the given directory because of this error.

    Also can you tell me how to process each extracted file one at a time such that one file is extracted and its contents are processed for a regex than the next one is processed in similar fashion and so on instead of just extracting in a single go?

      When you have a multipart file i.e
      test.part1.rar test.part2.rar test.part3.rar
      all parts form a chain.

      what it does is that when reading the first part test.part1.rar,it extracts all the file contents spanning all other parts but also scans the filenames for the rest of the parts so that in a batch job they do not get needelsy processed again since they have been already extracted;that is the caching process.

      The "error" you see simply means that it has already seen the other parts and so diregards their processing. That is not the cause of the file not being extracted. Post your code to check what you are trying to do

      Also can you tell me how to process each extracted file one at a time such that one file is extracted and its contents are processed for a regex than the next one is processed in similar fashion and so on instead of just extracting in a single go?

      unfortunatelly this cannot happen;everything has to uncompressed in one go

        My code is same as i have shown earlier

        use Archive::Unrar qw(list_files_in_archive %donotprocess process_file +); use IO::CaptureOutput qw(capture); my @files; { local ($stdout, $stderr); capture sub {list_files_in_archive( file=>"C:/perl2exe/For perl 5.10. +1/test.rar" ,undef)}, \$stdout, \$stderr; @files=map {/Archive contents : (.*)/ } split ("\n",$stdout); } foreach (@files) { print "file ",++$i," : ",$_,"\n"; } ($result,$directory) = process_file( file=>'C:/perl2exe/For perl 5.10.1/test.ra +r', password=>undef, output_dir_path=>"C:/extract/", ); } print "$result"; print "$directory";

        $result gives me the chain error