$ mkdir foo $ touch foo/bar $ chmod 444 foo/bar $ perl -e 'use File::Path "rmtree"; rmtree("foo", 0, 1)' Can't remove directory foo: Directory not empty at -e line 1 $ ls foo bar #### $ rm -rf foo $ ls foo ls: foo: No such file or directory #### use Path::Class; my $dir = dir('foo'); $dir->recurse(callback => sub { unlink $_[0] if !$_[0]->is_dir; }); $dir->rmtree(0, 1);