perl rmtree投掷空例外

时间:2011-06-25 00:25:57

标签: perl

我在使用rmtree(“C:\ myfolder”)时非常奇怪;并且它正在抛出某种异常,但它正在做它应该做的事情。

我附上

eval {
  rmtree("C:\myfolder");
};
if($@) {
   print $@;
}

如果文件夹存在,我会在成功删除文件夹时抛出异常。抛出的异常根本没有空白。我甚至尝试在rmtree中设置rmtree(“C:\ myfolder”,{verbose => 1})但同样的事情。

我目前的黑客行为是

eval {
   eval {
  rmtree("C:\myfolder");
  };
};
if($@) {
   print $@;
}

2 个答案:

答案 0 :(得分:2)

尝试逃避反斜杠即。

  

“C:\\ MyFolder文件”

答案 1 :(得分:2)

如何检测空白异常?

来自perldocs

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";
}

在Windows中,我知道相对路径适用于/。我认为绝对路径也适用于/

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