Perl: ошибка поиска файла - PullRequest
0 голосов
/ 30 декабря 2011

Код:

$PATTERN = 'specialname';
my $ArchiveX = Archive::Zip->new();
$ArchiveX->writeToFileNamed($PATTERN.".zip");

    my $FileName = $File::Find::name;
    $FileName =~ s/\//\\/g;

    if ($FileName =~ /$PATTERN/) {
        print "Addfile:".$FileName;
        print "\n";
        $ArchiveX->addFile($FileName);
    }

Ошибка:

Невозможно вызвать метод "addFile" для неопределенного значения.
Невозможно вызвать метод "requiredCompressionLevel" внеопределенное значение

1 Ответ

0 голосов
/ 04 января 2012

Этот ответ построен из цепочки комментариев в приведенном выше вопросе.

Сначала определите, определено или нет $ArchiveX, добавив

die "crud, \$ArchiveX is not defined" unless defined $ArchiveX;

чуть ниже строки, гдеВы инициализируете $ArchiveX.Если он не определен (что, вероятно, соответствует вашему сообщению об ошибке), посмотрите, какие другие предупреждения выдаются перед сценарием die s.

Вы упомянули сообщения об ошибках:

Can't opendir(D:\$RECYCLE.BIN/S-1-5-21-339270556-673599523-3524176310-1006): Invalid argument at filename.pl line 68 Can't call method "desiredCompressionLevel" on an undefined value

Это может показывать, что вы не можете открыть каталог.Убедитесь, что данный каталог существует.Если это не так, создайте его в своем скрипте.Если это так, убедитесь, что у вас есть соответствующие разрешения для доступа к нему (а если нет, получите их).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...