2011-06-25 14 views
0

私はrmtree( "C:\ myfolder")を使用しているので、これは非常に奇妙です。それは何らかの例外を投げているが、それは想定されていることをやっている。perl rmtreeが空の例外を投げる

フォルダが、私はフォルダ本家スローされた例外が正常に削除され得る存在している場合、私はこの

eval { 
    rmtree("C:\myfolder"); 
}; 
if([email protected]) { 
    print [email protected]; 
} 

で囲まれています。スローされた例外は何もブランクではありません。私はrmtree( "C:\ myfolder"、{verbose => 1})をrmtreeでも設定しようとしましたが、同じことがありました。

私の現在のハックは

eval { 
    eval { 
    rmtree("C:\myfolder"); 
    }; 
}; 
if([email protected]) { 
    print [email protected]; 
} 
+1

'$ @'が空白だった場合、 'if' woldは決してトリガしませんが、それはそうですか? – ikegami

+0

外部評価が決して例外を捕まえることはないので、 'if'は2番目のスニペットでは決して起動しません。 – ikegami

答えて

2

どのようにあなたが空白の例外を検出できますか? perldocsから

:Windowsの中

remove_tree('foo/bar', 'bar/rat', {error => \my $err}); 
if (@$err) { 
    for my $diag (@$err) { 
     my ($file, $message) = %$diag; 
     if ($file eq '') { 
      print "general error: $message\n"; 
     } 
     else { 
      print "problem unlinking $file: $message\n"; 
     } 
    } 
} 
else { 
    print "No error encountered\n"; 
} 

、私は、相対パスは/で動作することを知っています。私は絶対パスは/と一緒に働くと思います!

remove_tree("C:/myfolder"); #this should work 
2

は、バックスラッシュをエスケープすなわち試す行うことです。

"C:\\ MyFolderを"

関連する問題