2011-12-30 17 views
-2

コード:たPerl:のFileSearchエラー

$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); 
    } 

エラー:この答えは上記の質問にコメントスレッドの外に構築されてい

Can't call method "addFile" on an undefined value.
Can't call method "desiredCompressionLevel" on an undefined value

+1

、 '死ぬ定義された$ ArchiveXない限り「CRUD、\ $ ArchiveXが定義されていない」を追加;'と、それが死ぬかどうかを確認します。 –

+0

死ぬ。 $ ArchiveXが定義されていません – user1095332

+1

その場合、なぜ '$ ArchiveX'に新しい' Archive :: Zip'オブジェクトを割り当てることができないのかを知る必要があります。あなたは 'strict'と' warnings'を使っていますか? –

答えて

0

$ArchiveXはちょうどあなたが$ArchiveXを初期化線の下に

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

を追加することによって定義されているかどうかを判断

まず、。それが定義されていない場合(エラーメッセージの場合)、スクリプトdieの前に他にどのような警告がスローされているかを確認してください。

あなたは、エラーメッセージが言及:

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 

ディレクトリを開くことができないことを示しているように思われます。指定されたディレクトリが存在することを確認します。そうでない場合は、スクリプトで作成してください。存在する場合は、アクセスするための適切なアクセス権を持っていることを確認します(アクセスしない場合は取得してください)。二行目の後

関連する問題