Perl Archive::Rar обрабатывает архивы с паролем?

Ищу способ разархивировать архивы с паролем! Я использую это для тех, у кого нет пропуска:

use strict;
use warnings;
use Archive::Rar;

$archive = "test.rar";

$unrar = Archive::Rar->new(archive => "$archive");
$unrar->Extract ();

Пароль для этого будет «pass123». Заранее спасибо!


person John Smith    schedule 25.01.2013    source источник


Ответы (1)


Archive::Rar — это тонкая, но запутанная оболочка вокруг реального двоичного файла, обеспечивающая очень узкий контроль над процессом, в то время как внутри нее перемещаются тонны бессмысленных данных. Пожалуйста, рассмотрите возможность ручного вызова rarbinary с помощью многих средств IPC Perl или использования Archive::Unrar, если вы работаете на платформе Windows.

В любом случае, поскольку этот модуль имеет довольно небрежный контроль данных, и если вам нужен только быстрый и грязный скрипт для однократной задачи, вы можете обмануть его, поместив все, что хотите, в командную строку, вставив флаги в список файлов. :

my $unrar = Archive::Rar->new(archive => $archive);
$unrar->{args}{-files} = ['.', '-ppass123'];
$unrar->Extract;
person Oleg V. Volkov    schedule 25.01.2013