in reply to Re: Yea, though i walk through the shadow of File::Find & Directory Tree Deletion...
in thread Yea, though i walk through the shadow of File::Find & Directory Tree Deletion...

THIS WORKS for activestate - thanks++ ysth. thanks also to the other monks that have responded.

specifically, when i change the code to:
use File::Find qw(find); use Cwd; *name = *File::Find::name; my @dirs = @ARGV; my @legitdirs = grep { -d } @dirs; find( { "wanted" => \&unlinkplus, "bydepth"=>1, "no_chdir"=>1 } , @leg +itdirs); # danger, danger. high voltage. use at own risk. sub unlinkplus { warn "current dir :" . cwd . "\n"; if (!-l && -d _) { # not a link, is a directory warn "rmdir attempt :" . $name . "\n"; (rmdir($_) && warn "ok..." ) or warn "cannot rmdir $name:" . " $!"; } else { warn "file unlink :" . $name . ">"; (unlink($_) && warn "ok..." ) or warn "can't unlink " . $name . "$!"; } }
i get the behavior i require, ie removal of directories after the files in them have been removed, no problems. in summary: if you are using activestate perl for this kind of thing, ie directory removal, make sure you have the no_chdir option on.

if you are sensible enough to use cygwin perl, you will have no problems here. both versions of the script will work.

ps: re: tachyon's question (ie: rm -r) ; the restraining bolt fitted to prevent overtly sensible behavior is due to come off soon...

...wufnik

-- in the world of the mules there are no rules --
  • Comment on Re^2: Yea, though i walk through the shadow of File::Find & Directory Tree Deletion...
  • Download Code