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.rar', password=>undef, output_dir_path=>"C:/extract/", ); } print "$result"; print "$directory";